Linux не поддерживает китайские URL-адреса и имена файлов. В IE URL-адрес по умолчанию кодируется в UTF-8, и запрос отправляется на сервер.Когда китайский язык появляется в URL-адресе, он будет закодирован в UTF-8 и отправлен на сервер. В это время набор символов сервера будет влиять на декодирование URL-адреса веб-сайтом.
很多时候在其实不论是NGINX还是APACHE,问题的本质在于浏览器端请求的字符集和服务器端的字符集是否一致,当出现不一致的时候,服务器就无法找到请求的路径,从而出现404 NOT FOUND的错误。解决方案可以从以下几方面开始
1. Системный набор символов сервера
在centos下可以用echo $LANG查看。可以在vi /etc/profile 中增加
export zh_CN.utf-8
export LANG=zh_CN.utf-8
Затем перезапустите сервер, чтобы изменения вступили в силу.
2. Набор символов, настроенный в файле conf nginx
настройки кодировки в /www/wdlinux/nginx/conf/nginx.conf.
3. Набор символов запрошенного пути к файлу или имени файла.
Пункты 1 и 2 легко изменить, а пункт 3, изменение набора символов имен файлов, нужно делать с помощью инструмента convmv
convmv можно загрузить с http://j3e.de/linux/convmv,
wget Всего 3 ох./Linux/con ВМ…
cd convmv-1.14
make clean;
make install
как:
convmv -f gbk -t utf-8 thesis
Вышеупомянутое означает, что имена файлов всех файлов в диссертации преобразуются из GB2312 в UTF-8.
Для преобразования набора символов содержимого файла можно использовать iconv.
установить yum установить convmv
грамматика:
convmv [опции] ФАЙЛ(Ы) … КАТАЛОГ(И)
Основные параметры:
1. -f КОДИРОВАНИЕ Укажите кодировку текущего имени файла, например -f gbk 2. -t КОДИРОВАНИЕ Укажите кодировку для преобразования, например -f utf-8 3. -р Рекурсивно преобразовать все имена файлов в каталоге 4. –список Список всех поддерживаемых кодировок 5. – примечание По умолчанию печатается только преобразованный эффект, и эта опция добавлена для фактического выполнения операции преобразования.
Общие параметры:
-r рекурсивно обрабатывать подпапки
--notes выполняет реальную операцию, по умолчанию с файлом не выполняется никаких реальных операций
--list показать все поддерживаемые кодировки
--unescap может выполнять экранирование, например, превращать %20 в пробелы.
-i интерактивный режим (запрашивать каждый переход для предотвращения неправильного использования)
Как использовать конвмв:
convmv -f исходная кодировка -t новая кодировка [опции] имя файла
Пример: рекурсивно преобразовать кодировку имени файла gbk в каталоге тезисов (как показано ниже) в utf-8:
convmv -f gbk -t utf-8 thesis