Из-за большого объема обмена файлами между Windows ( кодировка GBK ) и Linux ( кодировка UTF-8 ), он легко столкнется с проблемами кодировки символов, такими как:
- Файлы zip / tar, имя которых содержит китайские символы в системе Windows, разархивируйте / разархивируйте их в системе Linux.
- запустить перенесенное устаревшее веб-приложение на Java (разработанное в системе Windows с использованием GBK-кодировки в JSP), которое записывает файлы с именами GBK-кодировки на диск.
- ftp получает / помещает файлы с именами в кодировке GBK между FTP-сервером Windows и клиентом Linux.
- переключить среду LANG в Linux.
Распространенной проблемой, о которой говорилось выше, является поиск / присвоение имен файлам. После googled я получил статью « Использование 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?
- Или, что я на самом деле хочу спросить: возможно ли, чтобы имя файла 中文 .txt (
$'\xe4\xb8\xad\xe6\x96\x87.txt'
) в среде zh_CN.UTF-8 и имя файла 中文 .txt ($'\xd6\xd0\xce\xc4.txt'
) в среде zh_CN.GBK ссылались на один и тот же файл ? - Если это не настраивается, то можно ли исправить ядро для преобразования кодировки символов между файловой системой и текущей средой (просто вопрос, а не запрос реализации)? и сколько производительности повлияет, если это возможно?