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

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

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

    細心!用心!耐心!

    吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學業,五六點粗墨,七八筆買賣,九十道人情。

    BlogJava 聯系 聚合 管理
      1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks

    亂碼問題之終極解決

     

    這里討論下 新手學習,高手指教 一起研究下
    (以 tomcat mysql 做例子 我推薦所有的編碼采用utf-8)

    1 工程
    工程內所有的 .java .jsp .xml .txt 都有默認的編碼 默認的是系統環境的編碼
    我們中文系統通常是GBK 推薦都采用utf-8
    utf-8 的時候 你編譯 生成doc 可能會遇到亂碼(特別是采用ant 的時候,生成doc你幾乎100%會遇到)

    解決方法 以ant 為例子
    編譯 注意 encoding 參數
    <target name="build" >
           <mkdir dir="${build.dir}" />
           <javac encoding="utf-8" destdir="${build.dir}" target="1.3" debug="true" deprecation="false" optimize="false" failonerror="true">
               <src path="${src.dir}" />
               <classpath refid="master-classpath" />
           </javac>
       </target>

    生成doc 注意 encoding 和 charset
    <target name="doc">
    <mkdir dir="doc" />
    <javadoc charset="utf-8" encoding="utf-8" packagenames="${packages}" sourcepath="src" destdir="doc" author="true" version="true" use="true" splitindex="true" >
    <classpath refid="master-classpath" />
    </javadoc>
    </target>

    這里 的encoding 就是指的你 java 文件的編碼格式 javac 和javadoc 都有這個參數
    charset 指的是 生成 doc 后的編碼方式 javadoc 的參數

    2 數據庫
    mysql 的編碼最復雜 從4以后 mysql 號稱支持多編碼 它更靈活了 我們也更麻煩了
    mysql 有4個級別的編碼
    系統級
    庫級
    表級
    sql語句級
    請保持采用統一的編碼 推薦utf-8
    其它數據庫要簡單的多 一般都是一種編碼

    3 web server
    tomcat 為例
    tomcat server.xml 中一個參數
    <Connectorport="8080" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIncoding="utf-8"/>
    經測試 這個URIncoding 參數主要是 get 方法中采用編碼

    4 jsp 顯示層
    第1條中說明了 jsp 文件本身的格式
    很多朋友采用eclipse +myeclipse 生成jsp
    它自動生成一個頭<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    不要誤解 這句話不能保證你在ie里看到的不是亂碼
    pageEncoding它的意思是 這個頁面本身采用的是 utf-8 (似乎只在eclipse 里有效果 ,我不確定)
    為了在ie 里不亂碼  你還得加一句 <%@ page contentType="text/html; charset=UTF-8"%>
    它不能在(myeclispe)自動生成  推薦修改 myeclipse的模板 在下邊的目錄里
    MyEclipse\eclipse\plugins\com.genuitec.eclipse.wizards_4.0.1\Templates
    里邊的jsp模版 你加上<%@ page contentType="text/html; charset=${encoding}"%>

    5 filter
    自從tomcat 4 以后 網上就流傳了一個SetCharacterEncodingFilter 過濾器 搜一下有很多
    很好用 web.xml 中加入
    <filter>
     <filter-name>Set Character Encoding</filter-name>
     <filter-class>filters.SetCharacterEncodingFilter</filter-class>
     <init-param>
     <param-name>encoding</param-name>
     <param-value>utf-8</param-value>
     </init-param>
    </filter>
     <filter-mapping>
     <filter-name>Set Character Encoding</filter-name>
     <url-pattern>/*</url-pattern>
     </filter-mapping>

    6 資源文件
    首先保證 文件本身是utf-8
    然后部署的時候用 native2ascii 轉換
    這里給出 ant 里的例子
    <native2ascii encoding="utf-8" dest="${web.dir}/WEB-INF/classes" src="${src.dir}" includes="**/*.properties" />

    posted on 2007-05-06 12:53 張金鵬 閱讀(271) 評論(0)  編輯  收藏 所屬分類: 項目框架的設想
    主站蜘蛛池模板: 亚洲日本国产乱码va在线观看| 91亚洲精品视频| 亚洲成年人啊啊aa在线观看| 免费真实播放国产乱子伦| 亚洲熟妇无码八AV在线播放| 亚洲精品美女久久久久| 成a人片亚洲日本久久| 中文字幕版免费电影网站| 亚洲av中文无码| 一级黄色片免费观看| 成人免费视频网站www| 亚洲三级在线播放| 一本久久免费视频| 国产亚洲成人在线播放va| 亚洲av无码久久忘忧草| 操美女视频免费网站| 精品亚洲永久免费精品| 婷婷亚洲综合五月天小说在线| 亚洲高清国产拍精品青青草原| 曰韩无码AV片免费播放不卡| 亚洲国产精品无码专区在线观看| 久操视频在线免费观看| 国产成人在线免费观看| 污污污视频在线免费观看| 亚洲一区AV无码少妇电影☆| 免费人成网站在线观看不卡| 亚洲日韩在线观看免费视频| 黄网站免费在线观看| 亚洲一级视频在线观看| 国产一区二区三区在线免费观看| 久久国产免费直播| 又粗又大又长又爽免费视频| 456亚洲人成影院在线观| 又黄又爽的视频免费看| 久久精品视频免费播放| 亚洲va久久久久| 四虎永久在线精品免费网址| 亚洲人成免费网站| 亚洲Av无码乱码在线观看性色| 国产精品视频白浆免费视频| 亚洲高清一区二区三区电影|