Windows(GBKエンコーディング)とLinux(UTF-8エンコーディング)の間で多くのファイル交換が機能するため、次のような文字エンコーディングの問題が簡単に発生します。
- Windowsシステムでは中国語の文字を含む名前のzip / tarファイル、Linuxシステムではunzip / untar。
- GBK-encoding-namedファイルをディスクに書き込む移行済みのレガシーJava Webアプリケーション(JSPでGBKエンコーディングを使用してWindowsシステムで設計)を実行します。
- ftpは、Windows FTPサーバーとLinuxクライアント間のGBKエンコード名ファイルを取得/配置します。
- LinuxでLANG環境を切り替えます。
前述の一般的な問題は、ファイルの検索/命名です。グーグルで検索した後、Linux http://www.linux.com/archive/feed/39912でのUnicodeの使用に関する記事を受け取りました。
オペレーティングシステムと多くのユーティリティは、ファイル名のバイトが表す文字を認識しません。
したがって、異なるエンコーディングの2つの中文.txtファイルを作成することができます。
[root@fedora test]# ls
???? 中文
[root@fedora test]# ls | iconv -f GBK
中文
涓iconv: illegal input sequence at position 7
[root@fedora test]# ls 中文 && ls $'\xd6\xd0\xce\xc4'|iconv -f gbk
中文
中文
質問:
- LANG / LC_ALL環境に関係なく、ファイル名を保存するために、Linuxファイルシステムが固定文字エンコードを使用するように構成することは可能ですか(NTFSは内部でUTF-16を使用するように)?
- または、私が実際に尋ねたいのは
$'\xe4\xb8\xad\xe6\x96\x87.txt'
、zh_CN.UTF-8環境のファイル名中文.txt($'\xd6\xd0\xce\xc4.txt'
)とzh_CN.GBK環境のファイル名中文.txt()に同じファイルを参照させることは可能ですか? - 構成できない場合、ファイルシステムと現在の環境の間で文字エンコーディングを変換するためにカーネルにパッチを適用することは可能ですか?可能な場合、パフォーマンスはどの程度影響しますか?