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

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

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

    學海拾遺

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

    Java Web的中文問題

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

    摘自王俊標編著的《精通Java Web開發-基于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()方法,用戶調用request.getParameter()方法時,首先調用parsetParameters()方法,在這里面將編碼進行轉換。如:
    ??????String s_target = new String (s_source.getBytes("iso-8859-1"), "gb2312);

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

    4、響應結果
    ??????對于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文件存儲中文數據常常會出現亂碼的問題,建議使用"GB2312":
    ??????<?xml version='1.0' encoding="GB2312"


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


    網站導航:
     
    主站蜘蛛池模板: 最近的中文字幕大全免费版| 久久精品国产这里是免费| 一个人免费观看视频www| 日产亚洲一区二区三区| 青青草无码免费一二三区| 久久精品国产亚洲夜色AV网站| 国产偷伦视频免费观看| 亚洲av无码国产精品色午夜字幕 | 亚洲av午夜成人片精品电影| 亚洲av第一网站久章草| 免费一级毛片一级毛片aa| 天堂亚洲免费视频| 国产精品亚洲一区二区三区在线 | 国产亚洲精品一品区99热| a级黄色毛片免费播放视频| 亚洲AV无码成人精品区蜜桃| 全部免费毛片在线播放| 97久久国产亚洲精品超碰热| 成人毛片免费播放| 一级毛片免费在线观看网站| 亚洲精品无码MV在线观看| 91大神在线免费观看| 国产亚洲sss在线播放| 国产国产成年年人免费看片| 9久热这里只有精品免费| 亚洲精品成人av在线| 最近中文字幕mv免费高清视频7 | 日本亚洲免费无线码| 精品国产亚洲AV麻豆| 国产精品亚洲A∨天堂不卡 | 暖暖免费日本在线中文| 亚洲无人区视频大全| 国产成人免费a在线视频app| 国产一级a毛一级a看免费视频| 亚洲精品一卡2卡3卡三卡四卡| 午夜一级毛片免费视频| a毛片免费播放全部完整| 亚洲AV综合色区无码二区偷拍 | 亚洲国产精品成人| 91老湿机福利免费体验| 亚洲av色香蕉一区二区三区 |