Через велику кількість обмінних файлів між Windows ( кодування GBK ) та Linux ( кодування UTF-8 ), він легко зіткнеться з проблемами кодування символів, такими як:
- zip / tar файли, ім'я яких містить китайські символи в системі Windows, розпакуйте / зніміть його в системі Linux.
- запустити перенесений застарілий веб-додаток java (розроблений у системі Windows, використовуючи кодування GBK в JSP), який записує на диск файли з кодуванням GBK на диск.
- ftp отримати / поставити файли з ім'ям кодування GBK між сервером Windows FTP та клієнтом Linux.
- переключити середовище LANG в Linux.
Поширеним питанням попереднього згаданого є розміщення файлів / іменування файлів. Після google я отримав статтю Використання Unicode в Linux http://www.linux.com/archive/feed/39912 :
операційна система та багато утиліт не усвідомлюють, які символи представляють байти в іменах файлів.
Отже, можливо мати 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
中文
中文
Запитання:
- Чи можливо налаштувати файлову систему Linux з використанням фіксованого кодування символів (наприклад, NTFS використовує UTF-16 внутрішньо) для зберігання імен файлів незалежно від середовища LANG / LC_ALL?
- Або те, що я насправді хочу запитати, це: чи можна дозволити ім'я файлу
$'\xe4\xb8\xad\xe6\x96\x87.txt'
t .txt ( ) в середовищі zh_CN.UTF-8, а ім'я файлу$'\xd6\xd0\xce\xc4.txt'
t .txt ( ) в середовищі zh_CN.GBK відноситись до одного файлу ? - Якщо це не налаштовується, то чи можна виправити ядро, щоб перекласти кодування символів між файловою системою та поточним середовищем (лише питання, а не запит на реалізацію)? і наскільки ефективність продуктивності, якщо це можливо?