国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

亂碼問題之終極解決

2019-11-18 12:21:43
字體:
來源:轉載
供稿:網(wǎng)友

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

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

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

解決方法 以ant 為例子
編譯 注重 encoding 參數(shù)
<target name="build" >
       <mkdir dir="${build.dir}" />
       <javac encoding="utf-8" destdir="${build.dir}" target="1.3" debug="true" de           <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 都有這個參數(shù)
charset 指的是 生成 doc 后的編碼方式 javadoc 的參數(shù)

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

3 web server
tomcat 為例
tomcat server.xml 中一個參數(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)測試 這個URIncoding 參數(shù)主要是 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 以后 網(wǎng)上就流傳了一個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" />

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 苏州市| 广宗县| 蓝田县| 遂平县| 祥云县| 崇明县| 宁武县| 桃园县| 丰城市| 陇川县| 屏东市| 当涂县| 胶州市| 邛崃市| 武冈市| 余江县| 宁陵县| 郑州市| 大兴区| 交城县| 邢台市| 厦门市| 九龙城区| 玉林市| 嘉荫县| 清丰县| 开化县| 兴国县| 崇明县| 鄂托克前旗| 广宗县| 喀什市| 且末县| 哈密市| 商洛市| 肇源县| 奉贤区| 屏山县| 富川| 毕节市| 独山县|