更新時間:2022-07-27 11:35:03 來源:動力節(jié)點 瀏覽14516次
Java中文亂碼的處理技巧是什么?動力節(jié)點小編來告訴大家。
1.為了處理Java中文亂碼問題,需要了解字符、字符集、編碼的概念。
字符:是文字和符號的總稱,包括文字、圖形符號、數(shù)學(xué)符號等。
字符集:是一組抽象的字符。一個字符集往往對應(yīng)一種特定的語言文本,文本中的所有字符或大部分常用字符構(gòu)成文本的字符集,如英文字符集。繁體漢字集、日文漢字集等計算機(jī)要處理各種字符,需要將字符與二進(jìn)制內(nèi)碼對應(yīng)起來。
這種對應(yīng)就是字符編碼:首先要確定字符集,對字符集中的字符進(jìn)行排序,再對應(yīng)二進(jìn)制數(shù)。根據(jù)字符集中的字符數(shù),使用多少字節(jié)進(jìn)行編碼。每種編碼都定義了一組明確的字符,稱為編碼字符集(Coded Character Set),這是字符集的另一種含義。最常被稱為字符集的就是這個意思。
2.如果要處理java中文亂碼的問題,還必須了解我們常用的編碼方式:ASCII編碼是目前計算機(jī)中使用最廣泛的字符集和編碼。ISO8859-1可以表達(dá)西歐語言。看起來很單一,為什么還在用呢?因為是單字節(jié)編碼,和計算機(jī)最基本的表示單位是一致的,所以很多時候,還是用ISO-8859-1編碼來表示。并且在許多協(xié)議中,默認(rèn)使用這種編碼。
Unicode(unicode 、通用碼、單碼)是計算機(jī)上使用的字符編碼。通常我們遇到太多的UTF-8,也就是Unicode編碼的實現(xiàn),請務(wù)必區(qū)分。
GB2312字符集是簡化字符集;BIG5字符集是臺灣繁體字符集;GBK字符集是簡繁字符集,包括GB字符集、BIG5字符集和一些符號。GB18030是國家制定的強(qiáng)制性大字符集標(biāo)準(zhǔn)。漢字集的引入有統(tǒng)一的標(biāo)準(zhǔn)。Linux系統(tǒng)使用默認(rèn)ISO-8859-1編碼,Win32系統(tǒng)默認(rèn)使用GB2312編碼。
3.了解亂碼是怎么產(chǎn)生的,java中文亂碼怎么處理?如果保存時字符的編碼格式與要顯示的編碼格式不同,就會出現(xiàn)亂碼問題。海浪在做開發(fā)的時候,始終提倡開發(fā)環(huán)境編碼一致。比如頁面編碼、數(shù)據(jù)庫編碼等。Java在運(yùn)行時總是使用Unicode來存儲字符,這有利于支持多語言環(huán)境。
我們在開發(fā)過程中經(jīng)常使用文件讀取。當(dāng)Java讀取文件,它使用系統(tǒng)默認(rèn)編碼來解碼文件。因此,您可以使用FileInputStream類指定讀取文件的編碼。JSP頁面亂碼通常只需要在頁面開頭用如下代碼指定字符集編碼即可。如果還是不行,請用下面這句話轉(zhuǎn)換str=new String(str.getBytes("ISO-8859-1"),"頁面編碼方式"); JAVA在網(wǎng)絡(luò)傳輸中使用的編碼是“ISO-8859-1” ,所以需要在輸出時進(jìn)行轉(zhuǎn)換,如:String str=new String(str.getBytes("開發(fā)環(huán)境代碼"),"ISO-8859-1");網(wǎng)絡(luò)編碼后中文必須正確,必須在類似Stirng的頁面顯示 str=new String(str.getBytes("ISO-8859-1"), "開發(fā)環(huán)境代碼");這樣解碼。
4.為了避免不必要的Java中文亂碼,首先要從源頭做起。這意味著什么?這意味著在項目開發(fā)中,首先要讓我們的開發(fā)環(huán)境統(tǒng)一編碼。例如,使用的開發(fā)環(huán)境是Eclipse +Tomcat5.0+SQLServer 2005 。項目的代碼可以在Eclipse的項目屬性中設(shè)置, JSP頁面可以設(shè)置統(tǒng)一的代碼。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743