<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)  編輯  收藏 所屬分類: 其它
    主站蜘蛛池模板: 7777久久亚洲中文字幕蜜桃| 不卡一卡二卡三亚洲| 亚洲国产人成在线观看69网站| EEUSS影院WWW在线观看免费| 国产乱人免费视频| 羞羞的视频在线免费观看| 免费看国产精品麻豆| 黄色网址大全免费| AV在线亚洲男人的天堂| 三上悠亚电影全集免费| 亚洲AV无码久久精品蜜桃| 精品无码国产污污污免费网站| 亚洲第一页在线视频| 岛国av无码免费无禁网站| 亚洲精品无码专区| 一本久久综合亚洲鲁鲁五月天| 一级做a爰全过程免费视频毛片| 国产亚洲日韩一区二区三区| 视频免费在线观看| 少妇中文字幕乱码亚洲影视| 福利免费观看午夜体检区| 亚洲s码欧洲m码吹潮| 亚洲真人日本在线| 久久青草91免费观看| 天堂亚洲国产中文在线| 亚洲国产综合无码一区二区二三区 | 国产亚洲色婷婷久久99精品| 免费国产黄网站在线观看 | 亚洲熟妇自偷自拍另欧美| 精品国产麻豆免费网站| 成人精品综合免费视频| 亚洲av不卡一区二区三区| 国产免费毛不卡片| 一级特黄a免费大片| 亚洲午夜久久久精品影院| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲午夜无码毛片av久久京东热| 国产大片51精品免费观看| 男女一边桶一边摸一边脱视频免费| 无码久久精品国产亚洲Av影片| 四虎国产精品免费久久|