Це дійсно дратує мене, так що я сподіваюся, що хтось тут може сказати мені, що я роблю неправильно. Я працюю на веб-сервері Apache на моєму ноутбуці Windows 7 на деякий час, тепер, щоб перевірити деякі програми, які я робив у свій вільний час. Нещодавно я помітив, що символи Unicode на моїх сторінках не відображаються правильно в моєму веб-переглядачі. Я зробив те, що виявилося багато безглуздим тестуванням, і виявив, що персонажі надсилаються як правильні UTF-8, і я також додав <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
рядок у верхній частині мого html виводу, який мав на меті виправити проблему, але насправді не зробив. Потім я взяв час, щоб перевірити заголовки відповіді HTTP, і побачив, що Apache відсилає:
HTTP/1.1 200 OK Date: Sun, 19 Jul 2015 18:18:40 GMT Server: Apache/2.2.25 (Win32) Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1
ОК, так що це виглядає досить простою проблемою. Згідно з Інтернетом, я можу це виправити, додавши AddDefaultCharset utf-8
до мого файлу httpd.conf. Таких не було AddDefaultCharset
рядків у файлі в будь-якому місці, тому я додав його внизу, точно так, як це написано вище. Потім я перезапустив службу Apache і виявив, що проблема не змінилася. Отже, я перезавантажив комп'ютер, за теорією, що я, можливо, не знаю, як правильно перезапустити Apache, але він все ще не відображає символи правильно, і він все одно посилає charset=iso-8859-1
у заголовках.
Я також знайшов веб-сайт, який припустив, що щось називається Windows VirtualStore може автоматично зберігати файл конфігурації де-небудь ще тільки для f * ck зі мною, але я не вірю, що це відбувається, тому що я не можу знайти будь-які файли Apache в Каталог VirtualStore. Крім того, ви повинні бути в змозі відключити VirtualStore, прийнявши на себе папку, і я зробив це деякий час тому, тому що це не даючи мені змінити що-небудь інакше.
На жаль, я навіть не впевнений, що ще можна поглянути на цю проблему. У кого є якісь ідеї?
AddDefaultCharset UTF-8
вище <IfModule mime_magic_module>
у файлі httpd.conf, хоча я не думаю, що ця позиція має значення. Ви також включаєте a <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
рядок у головному розділі веб-сторінок? ISO-8859-1 - це стандартний вибір браузера.
.htaccess
це обхідний шлях для спільних серверів, де немає доступу до конфігурації сервера; якщо ви запускаєте свій власний сервер, то самі конфігураційні файли сервера є значно чистішою ідеєю.
print header()
робить perl надсиланням заголовка iso-8859 до apache, який перекриває будь-яку конфігурацію; потрібно використовувати print header (-charset => 'UTF-8');
.
.htaccess