tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼的問題詳解
什么是字符集
在介紹字符集之前,我們先了解下為什么要有字符集。我們在計(jì)算機(jī)屏幕上看到的是實(shí)體化的文字,而在計(jì)算機(jī)存儲介質(zhì)中存放的實(shí)際是二進(jìn)制的比特流。那么在這兩者之間的轉(zhuǎn)換規(guī)則就需要一個(gè)統(tǒng)一的標(biāo)準(zhǔn),否則把我們的U盤插到老板的電腦上,文檔就亂碼了;小伙伴QQ上傳過來的文件,在我們本地打開又亂碼了。于是為了實(shí)現(xiàn)轉(zhuǎn)換標(biāo)準(zhǔn),各種字符集標(biāo)準(zhǔn)就出現(xiàn)了。簡單的說字符集就規(guī)定了某個(gè)文字對應(yīng)的二進(jìn)制數(shù)字存放方式(編碼)和某串二進(jìn)制數(shù)值代表了哪個(gè)文字(解碼)的轉(zhuǎn)換關(guān)系。
那么為什么會有那么多字符集標(biāo)準(zhǔn)呢?這個(gè)問題實(shí)際非常容易回答。問問自己為什么我們的插頭拿到英國就不能用了呢?為什么顯示器同時(shí)有DVI,VGA,HDMI,DP這么多接口呢?很多規(guī)范和標(biāo)準(zhǔn)在最初制定時(shí)并不會意識到這將會是以后全球普適的準(zhǔn)則,或者處于組織本身利益就想從本質(zhì)上區(qū)別于現(xiàn)有標(biāo)準(zhǔn)。于是,就產(chǎn)生了那么多具有相同效果但又不相互兼容的標(biāo)準(zhǔn)了。
說了那么多我們來看一個(gè)實(shí)際例子,下面就是屌這個(gè)字在各種編碼下的十六進(jìn)制和二進(jìn)制編碼結(jié)果,怎么樣有沒有一種很屌的感覺?
字符集 | 16進(jìn)制編碼 | 對應(yīng)的二進(jìn)制數(shù)據(jù) |
---|---|---|
UTF-8 | 0xE5B18C | 1110 0101 1011 0001 1000 1100 |
UTF-16 | 0x5C4C | 1011 1000 1001 1000 |
GBK | 0x8CC5 | 1000 1100 1100 0101 |
引言
我們在程序編寫的過程中總是會遇到一些中文編碼的問題,需要在程序中很多環(huán)節(jié)中去進(jìn)行過濾和轉(zhuǎn)義,依舊有可能遇到中文亂碼的問題,下面是我的一個(gè)同事告訴我的方法,百時(shí)不靈,當(dāng)然是針對于tomcat服務(wù)器來說的。
此外,這個(gè)方法并不會對之前的那些方法造成沖突。
服務(wù)器/conf目錄/server.xml文件
將相關(guān)語句改為:
<Connector port="8008" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
之前的語句沒有URIEncoding="UTF-8"
這一句
有朋友問了一個(gè)問題:這個(gè)方法好像只針對get請求有效,對于POST請求需要怎么解決呢?除了req.setCharacterEncoding("UTF-8");
這個(gè)方法之外?
其實(shí)亂碼問題需要整個(gè)系統(tǒng)統(tǒng)籌規(guī)劃的。從你的數(shù)據(jù)庫設(shè)計(jì),后臺字符過濾,前臺數(shù)據(jù)傳遞。單純使用 req.set
并不總會奏效。
所以,你如果是post提交,第一檢查數(shù)據(jù)庫格式是不是utf8的,第二,post提交form表單有沒有設(shè)置utf8
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
ubuntu中python調(diào)用C/C++方法之動態(tài)鏈接庫詳解
這篇文章主要給大家介紹了關(guān)于如何在ubuntu中python調(diào)用C/C++方法之動態(tài)鏈接庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧2018-11-11ubuntu16.04下安裝openssh-server報(bào)依賴錯(cuò)誤的完美解決方法(非常不錯(cuò))
這篇文章主要介紹了ubuntu16.04下安裝openssh-server報(bào)依賴錯(cuò)誤的完美解決方法(非常不錯(cuò))的相關(guān)資料,需要的朋友可以參考下2016-11-11

linux 遠(yuǎn)程控制windows系統(tǒng)下的程序(三種方法)

Centos7的apache網(wǎng)站環(huán)境搭建wordpress

linux里daily_routine實(shí)例代碼詳解