歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

FreeBSD中locale和encoding的一些測試


  因為測試光盤上中文文件名的顯示,對locale和encoding有了一些新的認識!
  測試平台:FreeBSD 6.2 release,kde,安裝了中文字體
  測試一:
  setenv LANG zh_CN.UTF-8,在用戶目錄下生成了一個“測試用例.txt"的中文文件名!在模擬終端和Konqueror中都能正常顯示中文文件名。
  當我在模擬終端上修改了encoding, UTF-8 =====>>>> GBK 後,ls -w 的結果是:
  -------->娴嬭瘯鐢ㄤ緥.txt
  我的理解是:當用戶的locale設定為zh_CN.UTF-8時,用戶所生成的文件名是按照 UTF-8 來進行編碼的!當用別的編碼來解讀的話,比如GBK,就會出現“錯誤”
  測試二:
  在模擬終端上,setenv LANG zh_CN.GBK,編碼設置為gbk,在用戶目錄下生成一個“測試用例gbk.txt“,可以用ls -w 顯示出正確的文件名。
  在Konqueror中不能正確顯示!
  小結1:在zh_CN.UTF-8的locale下,對於gbk編碼的文件名不能正確顯示!而文件名的編碼方式是由locale來決定的!我想這是KDE在對文件名按照locale的定義中的編碼部分進行顯示,把gbk編碼文件名當成utf編碼來讀,因為編碼本身是不兼容的,所以出現不能正確顯示。
  結論1:如果考慮到於Windows的交互使用,不能使用zh_CN.UTF-8 這個locale,因為在這個locale下的文件名編碼是utf-8,windows和其他的中文locale沒有辦法對它進行正確的處理!
  如果考慮系統的一致性和編碼集的國際慣例,例如與KDE的一致性,可以采用zh_CN.UTF-8的locale!
Copyright © Linux教程網 All Rights Reserved