Windows ( GBK kodlaması) ve Linux ( UTF-8 kodlaması) arasında çok sayıda dosya değişimi çalışması nedeniyle, kolayca karakter kodlama sorunlarıyla karşılaşacaktır, örneğin:
- Windows sisteminde adı Çince karakterler içeren zip / tar dosyaları, Linux sisteminde unzip / untar.
- GBK kodlaması adlı dosyaları diske yazan taşınan eski java web uygulamasını (Windows sisteminde tasarlanan, JSP'de GBK kodlamasını kullanarak) çalıştırın.
- ftp get / put GBK kodlaması adlı dosyaları Windows FTP sunucusu ve Linux istemcisi arasında.
- Linux'ta LANG ortamını değiştirin.
Daha önce bahsedilen genel sorun, dosya bulma / adlandırmadır. Google'dan sonra, http://www.linux.com/archive/feed/39912 Linux'ta Unicode'u kullanma makalem var :
işletim sistemi ve birçok yardımcı program, dosya adlarındaki baytların hangi karakterleri temsil ettiğini fark etmez.
Bu nedenle, farklı kodlamaya sahip 2 中文 .txt dosyasına sahip olmak mümkündür:
[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
中文
中文
Sorular:
- Linux dosya sistemini LANG / LC_ALL ortamından bağımsız olarak dosya adlarını depolamak için sabit karakter kodlaması ( NTFS dahili olarak UTF-16 kullanır gibi) kullanarak yapılandırmak mümkün müdür ?
- Ya da, aslında sormak istediğim şey: Dosya adı 中文 .txt (
$'\xe4\xb8\xad\xe6\x96\x87.txt'
) zh_CN.UTF-8 ortamında ve dosya adı 中文 .txt ($'\xd6\xd0\xce\xc4.txt'
) zh_CN.GBK ortamında aynı dosyaya başvuruyor mu? - Yapılandırılamazsa, dosya sistemi ve mevcut ortam arasında karakter kodlamasını çevirmek için çekirdeği yamalamak mümkün mü (sadece bir soru, uygulama talep etmiyor)? ve mümkünse ne kadar performans etkisi olur?