中文亂碼問題產生的由來

2021-08-29 09:21:22 字數 1032 閱讀 7966

中文亂碼問題產生的由來

在計算機中,只有二進位制的資料,不管資料是在記憶體中,還是在外部裝置上。

對於我們所看到的字元,也是以二進位制資料的形式存在的。不同的字元對應的

二進位制數的規則,就是字元的編碼。字元編碼的集合稱為字符集。

常用的字符集

1 ascii

2 iso8859-1

3 gb2312和gbk

每個國家(或者區域)都規定了計算機資訊交換用的字元編碼集,這就造成了

交流上的困難。想象一下,你傳送一封中文郵件給一位遠在西班牙的朋友,當郵件

通過網路傳送出去的時候,你所書寫的中文字元會按照本地的字符集gbk轉換成二進位制

編碼資料,然後傳送出去。當你的朋友接收以郵件(二進位制資料)後,檢視信件時,會

按照他所用的系統的字符集,將二進位制資料解碼為字元,然而由於兩種字符集之間編碼

規則的不同,導致轉換出現亂碼。這是因為,在不同的字符集之間,同樣的數字可能對

應了不同的符號,也可能在另一種字符集中,該數字沒也對應的符號。

為解決上述問題,統一全世界的字元編碼,由unicode協會制定並發布了unicode編碼。

4 unicode

5 utf-8

對亂碼產生過程的分析

字元資料在各種不同的字符集之間轉換時,就有可能會出現亂碼。

xml處理器在沒有被預先通知的情況下會預設文件資料為utf-8格式。

這樣在你書寫xml文件時,就存在了utf-8字符集和本地字元進行轉換的過程。

當向xml文件中寫入資料的時候,需要將本地字符集編碼的資料轉換為utf-8

,而在輸出字元資料的時候,則需要將utf-8編碼轉換為本地字符集編碼。

從上述的過程來看,寫入和輸出的過程是可逆的。理應不會出現中文亂碼問題

然而,實際應用的情形,比上述的過程要複雜的多。在web應用中,通過都包括

瀏覽器、web伺服器、web應用程式和資料庫等部分,每一部分的都有可能使用不

同的字符集,從而導致資料在各種字元之間轉換時,出現了亂碼問題。

ke 2007-09-20 21:46

簡述中文亂碼產生的原因

經常聽別人說編碼方式不一致是導致亂碼產生的原因。這是標準答案,但不一定是你想要的答案,因為不理解啊!那就說的再明白一點。你知道乙個中文字元在網路上是怎麼傳輸的嗎?比如 中國 這兩個字,猜一下也知道在傳輸過程中肯定不是 中國 這樣的字元,而是位元組,也就是0 1這樣的二進位制數。你需要把 中國 通過某...

中文亂碼問題

母頁 tran cel.jsp?p user id p user id p paraxml mytran cel paraxml ie8對window.open二進位製流會遮蔽,用二次請求解決該問題 modify by 20120731。mytran cel paraxml encodeuri my...

中文亂碼問題

url位址中傳遞中文,接收亂碼。修改tomcat的server.xml.在埠號那一項中增加 uriencoding utf 8 connectiontimeout 20000 redirectport 8443 uriencoding utf 8 在form表單中中文亂碼 1.保證你的專案的屬性是u...