Перенос веб-страниц с разных наборов символов на UTF-8 - PullRequest
3 голосов
/ 27 января 2011

В последние годы я использовал Notepad ++ на Win XP SP2.Как я только что видел, настройка в Notepad ++ заключается в кодировании новых файлов в «ANSI» в «Windows Format».В основном все файлы на моем жестком диске должны быть файлами ANSI, но я не уверен.Большинство .html-файлов имеют тег charset как «text / html; charset = iso-8859-1», но у некоторых его нет.Другие файлы, особенно текстовые файлы (например, списки ключевых слов), которые я хранил в Firefox XPCOM-системе, я не знаю, как они в настоящее время кодируются.

На стороне сервера у меня есть Apache с PHP и MySql,Для загрузки я использовал Filezilla.

Теперь проблема в том, что я хочу использовать японские знаки (или арабский и т. Д.).Это работает только частично.Я могу заставить свое самодельное приложение Firefox постоянно писать или читать UTF-8.Но я не могу каждый раз проверять, какой из старых файлов является какой кодировкой.

Только что прочитав старую статью Джоэла Спольски об UTF-8, я укрепляю свое мнение о том, что мне просто нужно как можно больше изменить всю системудо UTF-8.Пока я работаю таким образом локально на моем жестком диске, я могу просто повторно загрузить все на сервер.

Итак: Как я могу получить все свои файлы, локально перенесенные в UTF-8?И еще: можно ли вообще иметь Win XP SP2 везде, где постоянно используется UTF-8?Или я должен проверить это с каждой программой, или даже хуже с каждым файлом, чтобы правильная кодировка использовалась.Как насчет файлов, которые я получаю, например, по электронной почте или через USB-флешку, или которые я загружаю в виде zip-файлов?(Или еще тысяча возможностей.)

Обновление:

1.-4.до сих пор нормальноСначала я попробовал с BOM, но без, кажется, лучше.
Так до 5.) Что-то я должен изменить там тоже.Я изменил как в 3.) кодировка в html-template-file, и текст, поступающий из шаблона, отображается правильно.Но текст, исходящий от MySql / Php, показывает знак UnknownChar в некоторых местах в настоящее время, то есть там, где должен быть Umlaute äöü.Я изменил все параметры сортировки для текстовых полей в MySql-Database через phpmyadmin на "utf8_unicode_ci", но это не сработало.Это проблема php, или мне нужно только как-то конвертировать данные в MySql-Database один раз?

1 Ответ

3 голосов
/ 27 января 2011
  1. Прелесть UTF-8 в том, что он является надмножеством ASCII, поэтому, если ваши html и php файлы содержат только латинские алфавиты (то есть английский язык и синтаксис программирования / HTML), вам не нужно конвертировать файлсовсем.Вы можете оставить большую часть своего файла без изменений.
  2. Если вы найдете несколько исключений, которые вы хотите преобразовать вручную, вы можете открыть их в Notepad ++ и выполнить «Кодирование» - «Преобразовать в * 1005».* UTF-8 (без спецификации) '.
  3. Да, вам нужно изменить / добавить тег charset ко всем HTML-файлам, чтобы браузер отображал ваши файлы в UTF-8.
  4. В Notepad ++ вы можете установить, чтобы новый файл всегда открывался с помощью 'UTF-8 (без спецификации), Unix'.Также отметьте галочкой пункт «Применить к файлам ANSI», чтобы старый файл можно было правильно сохранить в новой кодировке.Я полагаю, что формат таков, потому что, хотя вы работаете на компьютере с Windows, веб-серверы обычно работают под управлением Linux / BSD, поэтому формат является исходной формой (сохранение файлов в исходной форме важно, особенно если вы используете систему контроля версий).
  5. Миграция живого сайта с базой данных - это другая проблема.Данные в MySQL имеют свою собственную кодировку, и по вашему вопросу я не могу сказать, нужно ли вам это делать и как это делать.Нужно больше подробностей об этом (если вам нужно).
...