中文檔名編碼和G_BROKEN_FILENAMES環境變數(轉)
中文檔名編碼和G_BROKEN_FILENAMES環境變數(轉)[@more@]開始改用Debian,當終於把中文的顯示和輸入搞定,心想總算可以安心使用的時候,突然發現自己又面臨一個兩難的選擇。 身為中國人自然要用國家標準的GB18030,所以我的Gnome的語言一定要選中文GB18030,我喜歡用Xmms聽歌,當我向播放列表新增歌曲的時候發現了一個有趣的現象:在瀏覽資料夾的對話方塊中的以中文作為檔名歌曲中有一些正常,其它則在應該顯示檔名的地方是一片空白。經過一番試驗我發現用瀏覽器下載時,直接使用中文檔名儲存的歌曲是可以正常顯示的,而另外那些我在Nautilus檔案瀏覽器中後改成中文檔名的則是空白。我們知道 ext2,ext3檔案系統不像vfat,ntfs那樣使用utf16儲存檔名,而是以位元組流的方式對待檔名,給它什麼就用什麼,不作任何轉換。因此可以肯定這兩種檔名是以兩種編碼儲存的,Xmms這種GTK1的程式能夠正常顯示的應該是用GB編碼,另外那種我想應該是GKT2使用的UTF8。為了驗證,執行gedit,選擇開啟檔案,果然Xmms不能顯示的在這裡正常,而Xmms正常的這裡顯示成/214/213/222/245這個樣子,而這些數字正是漢字的GB碼。不論使用哪種編碼都會有問題,要麼GTK1不能顯示,要麼GTK2顯示成/xxx/xxx的樣子。 有人建議我LOCALES直接設成UTF8編碼算了,我試了試,也發現了一些問題: GTK1程式在UTF8編碼下不只檔名不認識,連選單,按鈕的漢字也變成亂碼了。 國內ftp上的中文檔名都是GB編碼,我在UTF8編碼環境下用gftp不能正確瀏覽,聽說有一個叫遠端字符集的設定,不過我試了半天也沒弄好。 在圖形的命令列下也不能正確顯示utf8編碼的漢字 這樣也不行,那樣也不行,怎樣設定都有些毛病,簡直令我抓狂。 還好偶然看到了一個叫G_BROKEN_FILENAMES的環境變數,說是讓GTK2使用LOCALES中的編碼方式處理檔名,立即動手,在我的 .gnomerc 中加入 export G_BROKEN_FILENAMES=1 登出,選擇中文GB18030,登入...... 啊~~~整個世界清靜了!!! gogoliu回覆:你那是gtk 2.2時代的方法了 2.4開始應該改為 G_FILENAME_ENCODING=@local export G_FILENAME_ENCODING
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 新增環境變數和刪除環境變數Linux變數
- Shell啟動檔案與環境變數(轉)變數
- Unix的環境變數(轉)變數
- Unix的環境變數 (轉)變數
- 設定環境變數(轉)變數
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- Go 語言核心知識(一)--- 環境變數和原始碼檔案Go變數原始碼
- Linux下檢視檔案編碼,檔案編碼格式轉換和檔名編碼Linux
- 環境變數變數
- 環境變數與檔案查詢變數
- debian修改臨時環境變數支援中文變數
- Mac 設定環境變數的位置、檢視和新增PATH環境變數Mac變數
- 環境變數和地址空間變數
- JS變數和執行環境JS變數
- linux基礎——shell變數(本地變數和環境變數)Linux變數
- 環境變數的設定方法(轉)~變數
- #環境變數 相關的環境變數請複製過來,可能會和變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- Hyperledger Fabric 通道配置檔案和容器環境變數詳解變數
- Vue 設定環境變數和模式Vue變數模式
- JDK和Java環境變數的配置JDKJava變數
- Java 環境變數Java變數
- jdk環境變數JDK變數
- DOS環境變數變數
- env 環境變數變數
- 環境變數path變數
- Java環境變數Java變數
- ORACLE 環境變數Oracle變數
- postman環境變數Postman變數
- 配置環境變數變數
- awk中使用shell的環境變數(轉)變數
- Oracle全域性資料庫名、環境變數和sid的區別Oracle資料庫變數
- 在Linux中,什麼是環境變數?如何設定和檢視環境變數?Linux變數
- linux叉編譯工具環境變數設定Linux編譯變數
- shell指令碼的執行環境變數指令碼變數
- Unix環境和Windows環境下Oracle引數檔案位置:WindowsOracle
- ubuntu 快捷新增和刪除環境變數Ubuntu變數
- ubuntu JDK 環境變數UbuntuJDK變數