1,關(guān)于亂碼產(chǎn)生的問題
1,IDE環(huán)境配置,載相應(yīng)的IDE配置文件中設(shè)置為默認(rèn)的UTF8字符集
2, 頁面亂碼 ,載頁面中設(shè)置默認(rèn)字符集,例如jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
3,tomcat編碼
打開 tomcat安裝目錄下的 bin\setenv.bat ,該文件通常不存在,新建之, 添加如下內(nèi)容
set JAVA_OPTS=-Dfile.encoding=UTF-8
打開conf\server.xml, 在8080端口所屬的Connector節(jié)點(diǎn),添加URIEncoding,可解決大部分GET請求中文亂碼的問題
URIEncoding="UTF-8"
4,源碼的編碼
通常情況下, 文件本身的編碼,取決于新建文件時(shí),IDE或Project的編碼.
另外一個(gè)隱藏的編碼,是maven/ant編譯java源文件時(shí)使用的編碼
maven的配置如下
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5,數(shù)據(jù)庫編碼
通常來說,如果其他4碼解決了,那大部分情況下是mysql會出現(xiàn)編碼問題,
mysql有4個(gè)編碼
Server characterset: utf8 // 服務(wù)器字節(jié)集
Db characterset: utf8 // 當(dāng)前數(shù)據(jù)集字節(jié)集
Client characterset: utf8 // 客戶端字節(jié)集
Conn. characterset: utf8 // 當(dāng)前連接的字節(jié)集
修改my.ini的mysqld小節(jié),設(shè)置服務(wù)器字符集,是最佳解決方式
[mysqld]
character-set-server = utf8
然而,對于現(xiàn)有系統(tǒng),全局修改的風(fēng)險(xiǎn)比較大,所以,可以在客戶端解決,即jdbcurl上做配置
jdbc:mysql://127.0.0.1/nutzdemo?useUnicode=true&characterEncoding=UTF-8
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。