歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 最近幾天FreeBSD系統的一些切入點

最近幾天FreeBSD系統的一些切入點

日期:2017/2/28 11:10:24   编辑:關於Unix


單位的事情理順了,也就有了一些時間關注一些自己感興趣的東西
FreeBSD的libc庫中locale的實現一直是我所關注的,看了些代碼,饒有興趣的對KDE桌面環境的locale做了一些簡單的測試。這次測試還是很有收獲的,起碼我知道了KDE環境下所說的默認編碼不是特指UTF-8,而是locale中所定義的編碼。
內碼,編碼集,編碼,顯示這些總是在我腦海裡面繞乎,有的時候就把自己給繞迷糊了。趁著頭腦清醒,整理一下。
測試使用的第一個程序是konsole,它提供了編碼的選擇,測試的命令是 "mkdir 我的文檔",KDE環境是utf-8
一、locale = zh_CN.GBK 編碼是GBK
輸入的命令可以正確顯示“mkdir gbkgbk我的文檔",建立的目錄在konsole可以正確顯示。在konq中顯示為方框的亂碼。可以推想的是,目錄名是按照gbk編碼方式進行編碼的。
二、locale = zh_CN.GBK 編碼是UTF-8
輸入的命令可以正確顯示“mkdir gbkutf我的文檔“,建立的目錄在konsole中可以正確顯示,但"gbkgbk我的文檔“顯示存在亂碼——(gbkgbk?業??牡?)。在konq上顯示正常,可以推想的是,在這種環境下,目錄名肯定是按照utf編碼進行顯示的,"gbkgbk我的文檔“的顯示結果可以解釋為,利用UTF編碼方式對gbk編碼目錄名的誤讀。回溯到“編碼為GBK“,“gbkutf我的文檔”顯示為亂碼。
從以上兩個結果推斷,生成的目錄名和“編碼”有關,locale的作用不大。
三、locale = zh_CN.UTF-8 編碼為utf-8
輸入的命令可以正確顯示為“mkdir utfutf我的文檔“,建立的目錄在konsole,konq中都顯示正常。但gbkgbk我的文檔,在locale為gbk和utf兩種locale環境下,輸出是不同的。
試圖解釋其中的緣由。首先utf-8編碼的兩個目錄的顯示是相同的(字面上是相同的,其實還是有一定的問題),能夠確定的是"gbkgbk。”這個目錄的編碼是gbk的。
Copyright © Linux教程網 All Rights Reserved