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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

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

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

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

    解決方法 以ant 為例子
    編譯 注意 encoding 參數(shù)
    <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 都有這個(gè)參數(shù)
    charset 指的是 生成 doc 后的編碼方式 javadoc 的參數(shù)

    2 數(shù)據(jù)庫(kù)
    mysql 的編碼最復(fù)雜 從4以后 mysql 號(hào)稱支持多編碼 它更靈活了 我們也更麻煩了
    mysql 有4個(gè)級(jí)別的編碼
    系統(tǒng)級(jí)
    庫(kù)級(jí)
    表級(jí)
    sql語(yǔ)句級(jí)
    請(qǐng)保持采用統(tǒng)一的編碼 推薦utf-8
    其它數(shù)據(jù)庫(kù)要簡(jiǎn)單的多 一般都是一種編碼

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

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

    5 filter
    自從tomcat 4 以后 網(wǎng)上就流傳了一個(gè)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
    然后部署的時(shí)候用 native2ascii 轉(zhuǎn)換
    這里給出 ant 里的例子
    <native2ascii encoding="utf-8" dest="${web.dir}/WEB-INF/classes" src="${src.dir}" includes="**/*.properties" />

    總結(jié)
    到這里 你應(yīng)該徹底解決了亂碼了 嘿嘿
    寫的有點(diǎn)亂 還請(qǐng)高手們多指點(diǎn)

    (本文作者:EasyJF開源團(tuán)隊(duì)? 散仙 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留作者聲明,謝謝!)?

    posted on 2006-06-12 11:29 簡(jiǎn)易java框架 閱讀(2647) 評(píng)論(3)  編輯  收藏

    FeedBack:
    # re: 編碼討論---亂碼問題之終極解決 2006-06-12 11:47 huxiaofei
    native2ascii轉(zhuǎn)換是做什么用的?
    煩請(qǐng)指教。  回復(fù)  更多評(píng)論
      
    # re: 編碼討論---亂碼問題之終極解決 2006-06-12 12:57 Flyingis
    JDK中提供的native2ascii命令,能夠?qū)崿F(xiàn)字符編碼的轉(zhuǎn)換。
    在樓主的文章中,用來(lái)轉(zhuǎn)換資源文件的編碼方式為UTF-8。  回復(fù)  更多評(píng)論
      
    # re: 編碼討論---亂碼問題之終極解決 2006-06-12 14:18 Cisco
    pageEncoding是.jsp文件本身編碼
    contentType里面的charset是指服務(wù)器吐出的內(nèi)容的編碼,也就是客戶瀏覽器所得到的內(nèi)容的編碼。  回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品你懂的在线观看| 国产美女被遭强高潮免费网站| 国产性爱在线观看亚洲黄色一级片| 一区二区亚洲精品精华液| 久久久高清免费视频| 亚洲AV色吊丝无码| 国产精品久久久久免费a∨| 久久精品国产亚洲AV久| 啦啦啦中文在线观看电视剧免费版| 亚洲春黄在线观看| 免费看国产成年无码AV片| 在线亚洲高清揄拍自拍一品区| 免费无码看av的网站| 国产精品亚洲综合一区在线观看| 国产成人免费一区二区三区| 日韩电影免费在线观看网址| 中文字幕中韩乱码亚洲大片| 嫩草成人永久免费观看| 亚洲国产成人久久三区| 在线免费观看毛片网站| 免费激情网站国产高清第一页 | 456亚洲人成影院在线观| 免费无码黄动漫在线观看| 一级做a爰片性色毛片免费网站| 中文字幕亚洲一区| 永久在线免费观看| 亚洲hairy多毛pics大全| 中文字幕在线亚洲精品| 57pao国产成视频免费播放| 亚洲gay片在线gv网站| 亚洲色无码一区二区三区| 在线观看免费av网站| 久久亚洲中文无码咪咪爱| 亚洲国产精品人人做人人爱| 无码国产精品一区二区免费式芒果 | 亚洲av无码专区亚洲av不卡| 国产L精品国产亚洲区久久| 最近免费2019中文字幕大全| 亚洲欧美在线x视频| 亚洲AV无码国产精品色午友在线| 成人在线免费观看|