程式亂碼探索
亂碼問題經常遇到,如果要深入理解,必須自己多做實驗,如果懂得程式設計,用C++自己寫個程式驗證一下,會有更深入的理解。
1.亂碼定義:
2.亂碼原因:程式程式碼使用了錯誤的編碼方式讀取檔案(解碼),顯示了亂碼。
實驗(為了加深理解,需要自己動手操作一下,就會有新的體會!!!):
準備二個檔案:utf-8.txt,gbk.txt.每個檔案都輸入 a + 換行+漢 。用win的記事本分別儲存為utf-8編碼,ansi(在中文作業系統,ansi設定的為gbk編碼)編碼。然後ultraedit中有個“切換十六進位制”看看分別顯示什麼:
從上面可以得到這樣一些資訊:字母 a 的十六進位制編碼是0x61,回車是0x0D,換行是0x0A,文字“漢”的gbk編碼為BABA,
utf8的編碼為E6B189.可以進入網站,輸入漢字即可得,如下圖:
再次實驗:在ue中用utf8格式讀gbk.txt,顯示為亂碼。同樣的,用gbk格式讀utf-8.txt,顯示為亂碼。
這樣退出一個結論:ue這個程式使用錯誤編碼方式讀檔案gbk.txt,顯示亂碼。這可以解釋很多問題,如下:
做另外一個實驗:你用xshell連線linux,把gbk.txt,utf-8.txt長傳到linux中,設定應用程式xshell的編碼,會得到很有趣東西:
如下圖:
仔細觀察上面的實驗輸出,同樣的檔案,同樣的命令,同樣的應用程式,因為設定終端不同的編碼方式,有的正確顯示,
有的顯示亂碼,你會發現什麼問題呢?你會想到什麼呢?
3.
跨應用程式複製/貼上文字能保留文字格式的原理是什麼?
1.亂碼定義:
2.亂碼原因:程式程式碼使用了錯誤的編碼方式讀取檔案(解碼),顯示了亂碼。
實驗(為了加深理解,需要自己動手操作一下,就會有新的體會!!!):
準備二個檔案:utf-8.txt,gbk.txt.每個檔案都輸入 a + 換行+漢 。用win的記事本分別儲存為utf-8編碼,ansi(在中文作業系統,ansi設定的為gbk編碼)編碼。然後ultraedit中有個“切換十六進位制”看看分別顯示什麼:
從上面可以得到這樣一些資訊:字母 a 的十六進位制編碼是0x61,回車是0x0D,換行是0x0A,文字“漢”的gbk編碼為BABA,
utf8的編碼為E6B189.可以進入網站,輸入漢字即可得,如下圖:
再次實驗:在ue中用utf8格式讀gbk.txt,顯示為亂碼。同樣的,用gbk格式讀utf-8.txt,顯示為亂碼。
這樣退出一個結論:ue這個程式使用錯誤編碼方式讀檔案gbk.txt,顯示亂碼。這可以解釋很多問題,如下:
做另外一個實驗:你用xshell連線linux,把gbk.txt,utf-8.txt長傳到linux中,設定應用程式xshell的編碼,會得到很有趣東西:
如下圖:
仔細觀察上面的實驗輸出,同樣的檔案,同樣的命令,同樣的應用程式,因為設定終端不同的編碼方式,有的正確顯示,
有的顯示亂碼,你會發現什麼問題呢?你會想到什麼呢?
3.
跨應用程式複製/貼上文字能保留文字格式的原理是什麼?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30393770/viewspace-1868558/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自己試著隨手亂編的程式碼,好亂
- 使用.NET Interactive Notebook探索程式碼
- 徹底解決程式亂碼問題
- 程式設計入門之字元編碼與亂碼程式設計字元
- qt亂碼QT
- java 亂碼Java
- MySQL亂碼MySql
- 【重要】統一管理碎片程式碼,跟混亂程式碼說再見
- win7某些程式字型亂碼解決教程Win7
- 亂燉“簡書交友”資料之程式碼(1)
- 國際C語言混亂程式碼大賽C語言
- js打亂陣列順序程式碼例項JS陣列
- Python程式設計:探索有趣的程式碼設計模式Python程式設計設計模式
- activity影像亂碼
- activity影象亂碼
- mysql中文亂碼MySql
- Java Web亂碼JavaWeb
- secureCRT中文亂碼Securecrt
- 亂碼大解決
- oracle 中文亂碼Oracle
- PHP中文亂碼PHP
- gedit中文亂碼
- gitk中文亂碼Git
- plsql中文亂碼SQL
- win10應用程式漢字亂碼怎麼辦_win10開啟應用程式亂碼的解決方法Win10
- 探索RocketMQ的重複消費和亂序問題MQ
- 控制程式碼的本質——撥亂反正篇 (轉)
- flashfxp 亂碼,2種辦法解決flashfxp 亂碼問題
- linux環境下,java程式手工執行不亂碼,crontab自動執行就亂碼,解決方案!LinuxJava
- java web 中文亂碼JavaWeb
- qt5亂碼QT
- GoldenGate @STRCAT亂碼Go
- JS cookie 中文亂碼JSCookie
- 關於javamail亂碼?JavaAI
- flex亂碼問題Flex
- mysql亂碼問題MySql
- 博通賬戶亂碼
- 探索 PHP 多程式PHP