字符集與編碼_第1頁
字符集與編碼_第2頁
字符集與編碼_第3頁
字符集與編碼_第4頁
字符集與編碼_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

WelcometoHUAWEITechnologiespresentation

字符集與編碼2013年5月目錄?字符集與編碼方法?Java中字符的表示與處理?JavaWeb編程中文亂碼解決方法Log4j寫日志中文亂碼SecureCRT顯示中文亂碼字符集與編碼字符集(CharacterSet)?字符編碼(CharacterEncoding)字符集字符編碼對應(yīng)語言ASCIIASCII英語ISO8859-1ISO8859-1拉丁字母GB2132GB簡體中文GBKGBK簡體中文GB18030GB18030簡體中文Big5Big5繁體中文UnicodeUTF-8多國語言ASCII碼ASCII ASCII使用7個(gè)比特(bit)進(jìn)行字符編碼,最多可以表示2^7(128)個(gè)字符,這些字符包括了大小寫英文字母、阿拉伯?dāng)?shù)字、標(biāo)點(diǎn)符號、控制字符和其他符號。

每個(gè)字符用一個(gè)字節(jié)表示,每個(gè)字節(jié)的最高位為0。

例如:字符“A”在用ASCII碼中用2進(jìn)制的“01000001”表示,換算成10進(jìn)制為“65”。ISO8859-1ISO8859-1 ISO8859-1,又稱Latin-1,是在ASCII的基礎(chǔ)上,使用8比特編碼,新增了一些字符。新增的字符主要用來支持部分歐洲國家所使用的語言,例如:德語、葡萄牙語和西班牙語等。也就是說,ISO8859-1兼容ASCII。GB21321981年,開始使用國家標(biāo)準(zhǔn)《信息交換用漢字編碼字符集-基本集》,簡稱GB2312。GB2312使用雙字節(jié)編碼,一共包含了7445個(gè)字符,包括了6763個(gè)常用的漢字。對漢字分成了兩級,一級為常用字,有3755個(gè)字符,按照拼音排序,二級為次常用字,包括3008個(gè)字符,按照部首排序。GB2312主要應(yīng)用在中國大陸和新加坡,幾乎所有的中文系統(tǒng)和國際化的軟件都支持GB2312,同時(shí)GB2312兼容ASCII。在GB2312的基礎(chǔ)上又進(jìn)行了擴(kuò)充。在1995年,推出了《漢字內(nèi)碼擴(kuò)展規(guī)范》,簡稱GBK。GB18030-2000編碼標(biāo)準(zhǔn)是由信息產(chǎn)業(yè)部和國家質(zhì)量技術(shù)監(jiān)督局在2000年聯(lián)合發(fā)布的,GB18030編碼標(biāo)準(zhǔn)是在原來的GB2312和GBK編碼標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)行擴(kuò)充,增加了一些新的字符,特別是一些少數(shù)民族使用的字符。它的主要目的是為了解決一些生、偏、難字的問題。Unicode1991年Unicode把世界上幾十種文字整合在一個(gè)字符集中,Unicode中的每個(gè)字符都有一個(gè)唯一的數(shù)字進(jìn)行表示。Unicode是由Unicode組織進(jìn)行相關(guān)標(biāo)準(zhǔn)的制訂與推廣。UTF是Unicode/UCSTransformationFormat(統(tǒng)一字符集/統(tǒng)一字符編碼轉(zhuǎn)換格式)的縮寫,UTF就是Unicode的一種字符編碼(轉(zhuǎn)換)方法。Unicode組織推薦使用的是UTF-8和UTF-16,UTF-8是一種變長的編碼方式,也是當(dāng)前Unicode最常用的一種字符編碼(轉(zhuǎn)換)方法。UTF-8編碼方式:CodepageUnicode不兼容中文的GB2312、GBK和Big5等字符集,也不兼容其他國家的字符集,為了能順利的實(shí)現(xiàn)Unicode和其他字符集之間的轉(zhuǎn)換,需要使用codepage技術(shù)。codepage是各種字符集和Unicode之間的映射表。codepage字符集936簡體中文GBK950繁體中文Big565001UTF-8932日文JAVA字符Java中的字符主要通過char、byte和String這3種類型進(jìn)行表示。?Char表示的是1個(gè)Unicode字符,byte是字節(jié),String是字符串,它是多個(gè)char類型字符的序列。字符串在網(wǎng)絡(luò)傳輸或者存儲(chǔ)前需要轉(zhuǎn)換成byte數(shù)組。從網(wǎng)絡(luò)接收或從存儲(chǔ)設(shè)備讀取內(nèi)容的一般是byte數(shù)組。JAVAWEB中文亂碼調(diào)用JSP頁面顯示亂碼通過瀏覽器調(diào)用JSP頁面,在瀏覽器中所有的中文內(nèi)容出現(xiàn)亂碼。原因是JSP保存文件默認(rèn)使用ISO8859-1編碼,該字符集不支持中文。首先確認(rèn)本JSP在編輯器中保存文件內(nèi)容時(shí),使用的是UTF-8的編碼格式,然后在JSP頁面的開始,添加<%@

charset=UTF-8,pageEncoding="UTF-8"%>就可以解決這個(gè)中文亂碼問題。演示程序index.jspJAVAWEB中文亂碼調(diào)用Servlet頁面顯示亂碼通過瀏覽器調(diào)用Servlet,Servlet在瀏覽器中顯示的內(nèi)容出現(xiàn)亂碼。在Servlet使用response對輸出內(nèi)容之前,先執(zhí)行response.setContentType("text/html;charset=utf-8"),設(shè)定輸出的內(nèi)容的編碼為UTF-8。演示程序servlet01.javaJAVAWEB中文亂碼POST表單傳遞參數(shù)亂碼通過JSP頁面、HTML頁面或者Servlet中的表單元素提交參數(shù)給對應(yīng)的JSP頁面或者Servlet,而JSP頁面或者Servlet接收的中文參數(shù)值亂碼。解決辦法1:在接收POST提交的參數(shù)之前,使用request.setCharacterEncoding(“UTF-8”)設(shè)定接收參數(shù)的內(nèi)容使用UTF-8編碼。解決方法2:使用過濾器技術(shù),在接收參數(shù)之前,設(shè)定傳遞的參數(shù)內(nèi)容的編碼是UTF-8。演示程序index.jsp、servlet01.javaLog4j中文亂碼Log4j寫日志文件,文件中的中文出現(xiàn)亂碼.log4j通過QuietWriter寫日志,QuietWriterextendsFilterWriter,F(xiàn)ilterWriterextendsWriter,而Writer寫入的是字符流,對字符集比較敏感。英文系統(tǒng)一般默認(rèn)latin-1字符集,只能處理半角,通過encoding指定字符集后,能夠正確輸出指定字符集的字符流。log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.Encoding=UT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論