昨天做個(gè)小頁(yè)面,忽然發(fā)現(xiàn)運(yùn)行后全是亂碼.后來(lái)再看看,貌似就是忘記編碼問題了.開頭加個(gè)<%@page contentType="text/html; charset=gb2312"%> ,OK,一切OK了就.實(shí)際上這個(gè)語(yǔ)句的作用就是在jsp被編譯成為html的過程中提供編碼方式讓java來(lái)”讀取”表達(dá)式當(dāng)中的String.而類似的有一個(gè)句子<META http-equiv=Content-Type content=”text/html; charset=gb2312〃>則是用來(lái)顯示最后的數(shù)據(jù).網(wǎng)絡(luò)上常能看到合二為一亂用的情況.有關(guān)涉及到數(shù)據(jù)交換的,貌似用<%request.setCharacterEncoding("gb2312");%> 或者是<%response.setCharacterEncoding("gb2312");%> 應(yīng)該就可用搞定了.
就gb2312來(lái)說(shuō),它是比較早的中文編碼了,屬于第一代產(chǎn)品,現(xiàn)在雖然也用的多,不過個(gè)人感覺還是GBK大方一點(diǎn),但是支持的軟件米有2312的多,- -!從2312一直向上,到GBK個(gè)規(guī)范,再到現(xiàn)在GBK2K的國(guó)家標(biāo)準(zhǔn),這個(gè)國(guó)標(biāo)貌似生存能力>>GBK...可是現(xiàn)在支持它的軟件鳳毛麟角,基本上屬于珍惜動(dòng)物..所以現(xiàn)在貌似還是2312范圍廣一點(diǎn),畢竟夠用,而且不怕什么軟件不支持.
到應(yīng)用服務(wù)器端,個(gè)人開發(fā)還是用的開源tomcat的多.畢竟免費(fèi),性能也不錯(cuò),可人家畢竟是國(guó)外開發(fā)的,默認(rèn)的編碼當(dāng)然不會(huì)用你的GB,從它的默認(rèn)文件中就找的出默認(rèn)編碼,
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=”UTF-8”/>
最后那個(gè),人家用的是UTF-8.可以用request的setCharacterEncoding方法設(shè)定編碼方案.8過UTF-8貌似也能支持中文- -!還有個(gè)URL中文參數(shù)的問題,貌似可以用URLEncode.encode解決之.
MySQL就不用說(shuō)了,畢竟是瑞典人開發(fā)的,默認(rèn)拉丁編碼,其實(shí)也是支持中文的,我就曾經(jīng)同樣的編碼頭一天還能看到中文,第二天打開看就全變固定的亂碼了,無(wú)奈把編碼改個(gè)GB才好用- -!