[索引] 文件編碼 [論壇 - Ubuntu 文件資源]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



[索引] 文件編碼
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 846
MP : 572 / 18343
EXP: 85
離線
備份連結

================================================================================

## 相關討論

* [分享] Geany 的 使用心得
* 回覆: [請教]搜尋多個檔案及內容,並可開啟這個檔案的軟體以利編修
* 回覆: 在wine中執行ConvertZ會卡住
* 回覆: pluma顯示亂碼
* 回覆: gedit 亂碼問題 (14.04)
* 回覆: GEDIT復製WIN7的TXT檔案打開後變亂碼 (16.04)
* #4 回覆: *.java 文字檔在Windows10正常,在 Ubuntu1604LTS 卻亂碼,不能執行???


## 相關討論 (檔案名稱)

* [分享] 解壓縮zip檔,產生亂碼,如何解決的心得


## 案例討論

* 回覆: 沒有檔名的檔案 (有圖)

## id3

* 回覆: 請問如何解決歌曲亂碼
* 回覆: 音樂標題出現亂碼
* 手把手玩Linux / 轉換mp3標籤使撥放軟體能正常顯示

================================================================================

## 檔案內容 編碼轉換 (CLI)

### Manpage

* $ man iconv
* $ man 1posix iconv

### Package

* $ libc-bin

### PHP

* iconv
* function iconv

* Multibyte String
* funciton mb_detect_encoding
* funciton mb_convert_encoding
* function mb_detect_order

案例:

* #8 回覆: [分享] 解壓縮zip檔,產生亂碼,如何解決的心得
* file-phpunzip-php <-- 14.04 適用 (php5)
* php-archive (中文說明) <-- 14.06 適用 (php7)

================================================================================

## 偵測檔案內容編碼 (CLI)

### Manpage

* $ man chardet
* $ man chardet3
* $ man uchardet

### Package

* python-chardet
* python3-chardet
* uchardet


### 相關討論

* #4 回覆: *.java 文字檔在Windows10正常,在 Ubuntu1604LTS 卻亂碼,不能執行???

================================================================================

## 檔案名稱 編碼轉換

### Manpage

* convmv

### Package

* convmv


### 相關討論

* #4 回覆: *.java 文字檔在Windows10正常,在 Ubuntu1604LTS 卻亂碼,不能執行???


================================================================================

## 繁簡轉換

* 新同文堂 (GitHub) <-- 網頁

### Manpage

* opencc

### Package

* opencc

================================================================================

## GUI 文字編輯器

### Manpage

* $ man kate
* $ man gedit
* $ man pluma
* $ man geany
* $ man leafpad
* $ man mousepad

### Package

* kate
* gedit
* pluma
* geany
* leafpad
* mousepad

更多文字編輯器請參考「這篇」的紀錄

================================================================================

## Charset

### Manpage

以下可以執行「$ dpkg -L manpages | grep man7 | sort」找到。

* $ man charsets

* $ man utf-8
* $ man utf8 <--見下面「註1」

* $ man ascii
* $ man cp1251
* $ man cp1252
* $ man armscii-8

* $ man iso_8859-1
* $ man iso_8859-2
* $ man iso_8859-3
* $ man iso_8859-4
* $ man iso_8859-5
* $ man iso_8859-6
* $ man iso_8859-7
* $ man iso_8859-8
* $ man iso_8859-9
* $ man iso_8859-10
* $ man iso_8859-11
* $ man iso_8859-13
* $ man iso_8859-14
* $ man iso_8859-15
* $ man iso_8859-16

* $ man latin1 <--見下面「註2」
* $ man latin2
* $ man latin3
* $ man latin4
* $ man latin5
* $ man latin6
* $ man latin7
* $ man latin8
* $ man latin9
* $ man latin10

* $ man koi8-r
* $ man koi8-u

================================================================================

## 註1:

執行


$ ls /usr/share/man/man7/utf8.7.gz -l



顯示


lrwxrwxrwx 1 root root 10 Apr 24 2016 /usr/share/man/man7/utf8.7.gz -> utf-8.7.gz



執行


$ stat /usr/share/man/man7/utf8.7.gz



顯示


File: '/usr/share/man/man7/utf8.7.gz' -> 'utf-8.7.gz'
Size: 10 Blocks: 0 IO Block: 4096 symbolic link
Device: 822h/2082d Inode: 5646436 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-22 02:33:49.554631690 +0800
Modify: 2016-04-24 00:17:57.399037799 +0800
Change: 2016-04-24 00:17:57.399037799 +0800
Birth: -


================================================================================

## 註2

執行


$ ls /usr/share/man/man7/latin1.7.gz -l



顯示


lrwxrwxrwx 1 root root 15 Apr 24 2016 /usr/share/man/man7/latin1.7.gz -> iso_8859-1.7.gz



================================================================================

## Charmap

執行


$ whatis charmap



顯示


charmap (1) - Unicode character picker and font browser
charmap (5) - character set description file



### Manpage

* man 5 charmap

### Package

* manpages
* locales

### Path

* /usr/share/i18n/charmaps

執行


$ ls /usr/share/i18n/charmaps/ -1



執行


$ less /usr/share/i18n/charmaps/BIG5.gz



執行


$ less /usr/share/i18n/charmaps/UTF-8.gz



執行


$ less /usr/share/i18n/charmaps/ARMSCII-8.gz



執行


$ less /usr/share/i18n/charmaps/ISO-8859-1.gz



註:
less」可以改成「view」或「vim」或「mcedit」來觀看。


================================================================================

## Locale

### Reference

* Ubuntu Community Help Wiki / Locale
* Debian Wiki / Locale
* The Debian Administrator's Handbook / 8.1. Configuring the System for Another Language (中文版)

註:
「The Debian Administrator's Handbook」有紀錄在這篇「討論」。

### Manpage

執行


$ whatis locale



顯示


locale (7) - description of multilanguage support
locale (1) - get locale-specific information
locale (5) - describes a locale definition file
locale (1posix) - get locale-specific information



或是可以從網頁可以查詢到


$ dpkg -L manpages | grep '/man/man.*/' | grep locale



顯示


/usr/share/man/man1/locale.1.gz
/usr/share/man/man1/localedef.1.gz
/usr/share/man/man5/locale.5.gz
/usr/share/man/man7/locale.7.gz



執行


$ dpkg -L locales | grep '/man/man.*/'



顯示


/usr/share/man/man8/update-locale.8.gz
/usr/share/man/man8/validlocale.8.gz
/usr/share/man/man8/locale-gen.8.gz
/usr/share/man/man5/locale.gen.5.gz



註:
這個技巧可以參考「如何查詢某個套件有哪些使用手冊」這篇的說明。


* $ man 1 locale
* $ man 1posix locale
* $ man 5 locale

* $ man locale-gen
* $ man locale.gen

* $ man validlocale
* $ man update-locale


### Package

* libc-bin
* locales
* locales-all
* manpages

### Path

* /etc/default/locale
* /usr/share/i18n/SUPPORTED
* /usr/share/i18n/locales
* /usr/lib/locale
* /etc/locale.gen

執行


$ cat /usr/share/i18n/SUPPORTED | grep zh_TW



或是執行


$ grep zh_TW /usr/share/i18n/SUPPORTED



顯示


lzh_TW UTF-8
zh_TW.UTF-8 UTF-8
zh_TW.EUC-TW EUC-TW
zh_TW BIG5



--------------------------------------------------------------------------------

執行


$ ls /usr/share/i18n/locales/ | grep zh



顯示


lzh_TW
zh_CN
zh_HK
zh_SG
zh_TW



執行下面指令,觀看「/usr/share/i18n/locales/zh_TW」的內容


$ less /usr/share/i18n/locales/zh_TW



註:
less」可以改成「more」或「view」或「vim」或「mcedit」來觀看。


--------------------------------------------------------------------------------

執行


$ locale -a



執行


$ cat /usr/share/i18n/SUPPORTED | sort



執行


$ cat /usr/share/i18n/SUPPORTED | sort



執行


$ ls /usr/share/i18n/locales/ -1 | sort



執行


$ ls /usr/lib/locale/ -1 | sort



--------------------------------------------------------------------------------

執行


$ validlocale C



顯示


locale 'C' valid and available



執行


$ validlocale zh_TW



顯示


locale 'zh_TW' valid and available




執行


$ validlocale zh_TW



顯示


locale 'zh_TW' valid and available




執行


$ validlocale zh_TW.UTF-8



顯示


locale 'zh_TW.UTF-8' valid and available





執行


$ validlocale zh_TW.UTF-8



顯示


locale 'zh_TW.UTF-8' valid and available




執行


$ validlocale zh_TW.BIG5



顯示


locale 'zh_TW.BIG5' valid and available



執行


$ validlocale lzh_TW



顯示


locale 'lzh_TW' valid and available



註:
「lzh_TW」請參考「這篇」和「這篇」,關鍵字是「Literary Chinese」,
還有參考「維基百科 / 文言文」或「Wikipedia / Classical Chinese」。

--------------------------------------------------------------------------------

執行下面指令,觀看「/etc/default/locale」的內容


$ less /etc/default/locale



顯示


# File generated by update-locale
LANG="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"



執行


$ locale



顯示


LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=




執行


$ sudo update-locale LC_CTYPE=zh_TW.UTF-8 LC_NAME




執行下面指令,觀看「/etc/default/locale」的內容


$ less /etc/default/locale



顯示


# File generated by update-locale
LANG="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
#LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_CTYPE=zh_TW.UTF-8



可以看到「LC_NAME」那一行被註解了(在前面加上#),然後「LC_CTYPE」被修改了。

再度執行


$ locale



顯示


LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=



得到的顯示還是跟原來的一樣,
所以「update-locale」只有更改「/etc/default/locale」這個檔案。
更改完了「/etc/default/locale」,必須登出,然後登入,執行「locale」,才會跟著改變。

* $ man 7 locale
* $ man 5 locale
* $ man 1 locale

也可以參考「鳥哥的 Linux 私房菜 / 第十章、認識與學習BASH / 10.2.4 影響顯示結果的語系變數 (locale)」的說明。

* $ man bash
* $ man 7 environ
* $ man 3 getenv
* $ man 1posix env
* $ man printenv

也可以參考「Ubuntu Community Help Wiki / EnvironmentVariables」,
或是參考「Debian Wiki / EnvironmentVariables」和「Debian Wiki / Locale」。


### locale 相關討論案例

* #5 回覆: debian 8.2 + 預設的gnome 3.14.1 家目錄下預設資料夾名稱英文切回中文的問題
* #14 回覆: 為什麼要這樣翻譯
* #8 回覆: 安裝 ubuntu server 1604時發生這樣的問題
* #10 回覆: 安裝 ubuntu server 1604時發生這樣的問題 (有關「lzh_TW」的疑問)
* #11 回覆: 安裝 ubuntu server 1604時發生這樣的問題 (有關「lzh」的探索)
* #6 回覆: 登入畫面 輸入密碼處 中文部分出現方格
* #10 回覆: MadBox 14.04中文安裝
* #6 回覆: [分享] 青空文庫電子書閱覽器aobook
* #19 回覆: [求助] 新手詢問:如何安裝香港補字元集?
* #3 回覆: [求救]我的conky無法顯示中文!!
* #8 回覆: Kubuntu 15.04 (Plasma 5.0) Fcitx、gcin輸入法無法打中文 (有關「check-language-support」的探索)
* #4 回覆: 手機照片無法預覽 (有關「kde-l10n-zhtw」這個套件和「dolphin」的使用界面中文化)
* #2 回覆: liberoffice不能用fcitx打中文


## 如何找出拒絕不符權限的操作(Permission denied)的「po檔」和「mo檔」。

* #4 回覆: ubuntun 14.04, psql 無法使用

================================================================================


## 相關的索引

一些「索引」放在「Ubuntu 文件資源」,紀錄一些「討論案例」和「參考連結」。

* [索引] 中文輸入
* [索引] 字型安裝設定

我也有將這些「索引的連結」整理,列在這裡

2015/2/8 13:54
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.