我們在開發JAVA程序的時候經常遇到亂碼的現象,可(kě)能(néng)新(xīn)手對這些不沒有(yǒu)經驗,不是很(hěn)了解它的出現是由于什麽問題引起的,今天整理(lǐ)了幾個常用(yòng)JAVA亂碼的處理(lǐ)方法,供大家參考一下,新(xīn)疆軟件開發網搜集整理(lǐ) 。
1. Serlvet傳遞過來的參數的編碼不對:
解決方案:
a) 檢查Tomcat的conf/Server.xml的Connector Tag <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8' />
b) 檢查 doGet() 函數 request.setCharacterEncoding("UTF-8");
2. Hibernate遇到亂碼問題:
檢查:hibernate.cfg.xml中(zhōng)的 <property name="connection.url"> jdbc:mysql://localhost:3306/yidishui?useUnicode=true&characterEncoding=UTF-8 </property>
3. PreparedStatement, setString之後trace(prepStm)發現SQL變成亂碼了
解決方法: 1) 在setString的地方試着把自己的string的charset改成數據庫一樣的charset, (我試了很(hěn)久,沒試出來,但應該是可(kě)行的) 2) 在創建Connection的時候,用(yòng)上面解決方法中(zhōng)的帶有(yǒu)characterEncoding的url
4. 使用(yòng) newStr = new String( oldStr.getBytes("XXXXX"), "YYYY" ) 從XXXX将字符轉化成YYYY
|