Неможливо конвертувати кодування з us-ascii до utf-8. Що ж мене закручує?


2

Я намагаюся налагодити сміттєві символи, які мої веб-сторінки відображають на іноземних мовах. Я хочу, щоб моя createpage.php в utf-8.

me@host:/www/webroot$ file -bi createpage.php
text/x-php; charset=us-ascii
me@host:/www/webroot$ iconv -f us-ascii -t utf-8 createpage.php > createpage_utf8.php
me@host:/www/webroot$ file -bi createpage_utf8.php
text/x-php; charset=us-ascii

У мене є rwx дозволи на каталог, rw на файлах. Я мушу бути сліпим - що я тут закручую? Це тому, що ascii є підмножиною utf-8, і у мого php немає спеціальних символів (лише файли ini, які я include ), тому file -bi просто звіти ascii в будь-якому випадку?

Відповіді:


2

Файл, що використовує тільки звичайні символи ASCII, не відрізняється від UTF8, оскільки за визначенням 7-бітові символи ASCII відображаються 1-в-1 у UTF8. Тому ваше "перетворення" нічого не робить.


Ну, я відчуваю себе трохи нерозумно. Я думаю, моя проблема полягає в PDO модуля php тоді, так як всі мої таблиці кодуються в UTF-8. Дякуємо, що знайшли час, щоб відповісти.
Escher

Переконайтеся, що веб-сервер передає, що контент кодується UTF-8, наприклад, шляхом додавання конфігураційної лінії AddDefaultCharset UTF-8
wurtel

$db->exec("SET CHARACTER SET utf8"); безпосередньо після відкриття PDO з'єднання з базою даних може допомогти, з mysql.
wurtel

Усі відповідні таблиці вже були utf8, а веб-сервер - utf8, як і заголовки http. Виявляється, я просто забув charset=utf8 аргумент при створенні об'єкта PDO.
Escher
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.