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

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

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

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
    編碼討論---亂碼問題之終極解決

    很多人?特別是新手?做j2ee?項目中
    總能受困于?這樣或那樣的編碼問題

    這里討論下?新手學習,高手指教?一起研究下
    (以?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 2006-06-16 14:02 天外飛仙 閱讀(331) 評論(0)  編輯  收藏 所屬分類: 其它
    主站蜘蛛池模板: 91情国产l精品国产亚洲区| 又粗又硬免费毛片| 亚洲AV成人一区二区三区AV| 一区二区视频免费观看| 亚洲 综合 国产 欧洲 丝袜| 蜜芽亚洲av无码一区二区三区| 岛国大片免费在线观看| 亚洲精品无码永久在线观看男男| 最近最好的中文字幕2019免费| 亚洲成人高清在线观看| 免费国产成人高清在线观看网站| 亚洲va乱码一区二区三区| 在线a级毛片免费视频| 2020国产精品亚洲综合网| 天天摸天天操免费播放小视频| 亚洲AV无码之国产精品| 亚洲午夜激情视频| 青青草原1769久久免费播放| 78成人精品电影在线播放日韩精品电影一区亚洲 | 久久国产乱子伦精品免费午夜| 亚洲精品无码精品mV在线观看| 99ee6热久久免费精品6| 亚洲第一男人天堂| 四虎精品亚洲一区二区三区| 97国免费在线视频| 亚洲宅男天堂a在线| 国产成人3p视频免费观看| 中文字幕的电影免费网站| 亚洲伦理一区二区| 成熟女人特级毛片www免费| 激情吃奶吻胸免费视频xxxx| 亚洲va久久久噜噜噜久久| 亚洲视频免费在线看| 国产成人高清亚洲一区久久 | 亚洲国产精品综合久久网各| 免费高清小黄站在线观看| jizz免费一区二区三区| 亚洲色欲www综合网| www.亚洲精品.com| 四虎最新永久免费视频| 国产成人亚洲综合无|