<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學海拾遺

    生活、技術(shù)、思想無處不在學習
    posts - 52, comments - 23, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Java Web的中文問題

    Posted on 2008-03-20 09:43 tanzek 閱讀(507) 評論(0)  編輯  收藏

    摘自王俊標編著的《精通Java Web開發(fā)-基于Struts EJB Hibernate JBuilder》一書:

    1、頁面請求
    ???采用Filter過濾器方式:
    ??????????????????web.xml片段

    ?1 ……
    ?2 <!-- ?filter?配置? -->
    ?3 < filter >
    ?4 ???? <!-- ?filter?別名? -->
    ?5 ???????? < filter-name > encodingfilter </ filter-name >
    ?6 ???????? <!-- ?類文件位置? -->
    ?7 ???????? < filter-class > login3.EncodingFilter </ filter-class >
    ?8 ????????
    ?9 ???????? <!-- ?定義屬性encoding="gb2312"?即指定編碼類型? -->
    10 ???????? < init-param >
    11 ???????????? < desription > encode?to?gb2312 </ desription >
    12 ???????????? < param-name > encoding </ param-name >
    13 ???????????? < param-value > gb2312 </ param-value >
    14 ???????? </ init-param >
    15 </ filter >
    16
    17 <!-- ?filter?映射配置? -->
    18 < filter-mapping >
    19 ???? <!-- ?定義該filter?處理所有格式的請求? -->
    20 ???? < filter-name > encodingfilter </ filter-name >
    21 ???? < url-pattern > /* </ url-pattern >
    22 </ filter-mapping >
    23 ……

    ?????????EncodingFilter.java

    ?1 import ?java.io.IOException;
    ?2
    ?3 import ?javax.servlet. * ;
    ?4 import ?javax.servlet.http.HttpServlet;
    ?5
    ?6 public ? class ?EncodingFilter? extends ?HttpServlet?
    ?7 ???? implements ?Filter? {
    ?8 ????
    ?9 ???? private ?FilterConfig?filterConfig;
    10 ????
    11 ???? private ?String?targetEncoding? = ? null ;
    12 ????
    13 ???? public ? void ?init(FilterConfig?filterConfig)? throws ?ServletException? {
    14 ???????? this .filterConfig? = ?filterConfig;
    15 ???????? this .targetEncoding? = ? this .filterConfig.getInitParameter( " encoding " );
    16 ????}

    17
    18 ???? public ? void ?doFilter(ServletRequest?request,?ServletResponse?response,
    19 ????????????FilterChain?chain)? throws ?IOException,?ServletException? {
    20 ???????? try ? {
    21 ????????????System.out.println( " targetEncoding?: " ? + ?targetEncoding? + ? " \n " );
    22 ????????????request.setCharacterEncoding(targetEncoding);
    23 ????????????chain.doFilter(request,?response);
    24 ????????}
    ? catch ?(ServletException?sx)? {
    25 ????????????filterConfig.getServletContext().log(sx.getMessage());
    26 ????????}
    ? catch ?(IOException?iox)? {
    27 ????????????filterConfig.getServletContext().log(iox.getMessage());
    28 ????????}

    29 ????}

    30 ????
    31 ???? public ? void ?destroy()? {
    32 ???????? this .filterConfig? = ? null ;
    33 ???????? this .targetEncoding? = ? null ;
    34 ????}
    ????
    35 }

    36


    2、Web容器編碼
    ??????在Tomcat的的源代碼中的getParameter()方法,用戶調(diào)用request.getParameter()方法時,首先調(diào)用parsetParameters()方法,在這里面將編碼進行轉(zhuǎn)換。如:
    ??????String s_target = new String (s_source.getBytes("iso-8859-1"), "gb2312);

    3、數(shù)據(jù)庫
    ??????MySQL中文問題的主要原因是:它對數(shù)據(jù)進行編碼時,采用了和底層的操作系統(tǒng)所不同的編碼。通常MySQL在中文Windows平臺上正確的編碼方式是GBK。因此只要將MySQL安裝目錄下的my.ini文件中的default-character-set選項設(shè)為GBK即可。

    4、響應結(jié)果
    ??????對于Servlet的代碼處理,可以使用:
    ?????????……
    ?????????respsonse.setContentType("text/html;charset=GB2312");
    ?????????……
    ??????對于JSP文件,可以在開頭部分添加如下聲明:
    ?????????……
    ?????????<%@ page contentType="text/html;charset=GB2312" %>
    ?????????……
    ??????對于HTML頁面文件,則在開頭部分添加聲明如下:
    ?????????……
    ?????????<head>
    ????????????<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=GB2312">
    ?????????</head>
    ?????????……
    5、XML文件
    ??????在采用"UTF-8"方式編碼的情況下,使用XML文件存儲中文數(shù)據(jù)常常會出現(xiàn)亂碼的問題,建議使用"GB2312":
    ??????<?xml version='1.0' encoding="GB2312"


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲精品狼友在线播放| 午夜免费福利网站| 国产亚洲AV无码AV男人的天堂 | 国产精品美女自在线观看免费| 亚洲经典在线中文字幕| 69精品免费视频| 亚洲黄色免费电影| 日本在线高清免费爱做网站| 久久亚洲最大成人网4438| 国产情侣激情在线视频免费看| 亚洲精品视频观看| 四虎影视www四虎免费| 色婷婷亚洲一区二区三区| 亚洲av麻豆aⅴ无码电影| 国产精品美女久久久免费| 亚洲一区二区三区AV无码| 久久午夜夜伦鲁鲁片无码免费| 久久久久久亚洲精品成人| 成人免费福利电影| 色多多www视频在线观看免费| 永久亚洲成a人片777777| 久久精品私人影院免费看| 亚洲二区在线视频| 四只虎免费永久观看| 精精国产www视频在线观看免费| 亚洲AV无码一区二区三区系列| 4444www免费看| 人人狠狠综合久久亚洲| 久久久久亚洲精品天堂久久久久久 | 亚洲激情黄色小说| 黄a大片av永久免费| 中国一级毛片免费看视频| 亚洲网站在线免费观看| 日韩免费观看视频| 中文在线免费不卡视频| 亚洲欧洲尹人香蕉综合| 亚洲成A人片在线观看无码3D | 三级黄色在线免费观看| 亚洲国产成人手机在线电影bd | 日本人护士免费xxxx视频| 国产三级在线免费观看|