Установка Apache в папке с китайскими символами в имени - PullRequest
0 голосов
/ 17 мая 2010

Я бы хотел установить сервер Apache в папку типа c: \ any \ \ 怞 怟 \ any2 \ под windows. Когда я пытаюсь запустить сервис, он говорит, что:

httpd: Syntax error on line xx of C:/anything/\xe6\x80\x98\xe6\x80\x99\e6\80\9a/anything2/apache/conf/httpd.conf: ServerRoot must be a valid directory

У кого-нибудь есть решение?

1 Ответ

1 голос
/ 17 мая 2010

У кого-нибудь есть решение?

Не делай этого? : -)

Имена файлов Unicode в Windows представляют собой огромную проблему для программного обеспечения, взаимодействующего с ОС через байтовые интерфейсы, такие как функции стандартной библиотеки C (stdio), предоставляемые MS CRT.

В то время как другие платформы в основном кодируют UTF-8 в качестве кодировки имен файлов, Windows использует кодовую страницу по умолчанию для конкретной локали (ошибочно известную как «ANSI»). В западной установке Windows это обычно кодовая страница 1252 (аналогично ISO-8859-1); при установке на китайском языке вы получаете кодовую страницу 936 (аналогично GB-2312). Файлы, имена которых не полностью вписываются в эту кодовую страницу - например, 思怞怟 на западном компьютере или Dobrý den на китайском компьютере - просто будут недоступны.

Вы можете изменить системную кодовую страницу через Панель управления -> Региональные параметры -> Дополнительно -> Язык для программ, не поддерживающих Юникод. Однако даже если вы выбрали cp936, чтобы получить китайские символы, Apache, похоже, пытается закодировать свое имя файла в UTF-8 независимо. К сожалению, вы можете выбрать только из ограниченного диапазона кодовых страниц, по умолчанию Windows в разных регионах; вы не получаете UTF-8.

Единственный способ заставить его работать с таким именем папки - это получить старое школьное имя файла DOS 8.3, которое только для ASCII. Вы можете увидеть имена файлов 8.3 из командной строки, используя dir /x, если эта функция включена в вашей файловой системе. Вы можете обнаружить, что папка имеет имя 8.3, например, F8D5~1. Вызовите Apache по этому пути вместо 思怞怟, и он должен по крайней мере начать ... хотя, если у вас есть больше имен файлов, отличных от ASCII, вы только получите больше проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...