Как перевести сайт с windows 1251 на utf 8

41

41

16.11.200912:1016.11.2009 12:10:02

Несмотря на то, что поддержка UTF8 появилась в продукте давно, остаются много проектов, сделанных на старой версии в cp1251. Теоретически сделать конвертацию не сложно, однако могут возникнуть трудности.
Сразу оговорюсь, что данный пост не претендует на статус официального документа, это должно быть хорошее подспорье по проблеме.

Показать скрытое содержание

Подготовка

  • Для работы сайта на битрикс в utf8 абсолютно необходимо наличие модуля mbstring в php (это есть почти на любом хостинге) и установка параметра

    С этим может быть проблема т.к. с версии php 5.2.8 параметр меняется глобально на весь сервер (http://bugs.php.net/bug.php?id=47187). Уточните вопрос у хостера, но будьте осторожны если вам предложат CGI (см. «как выбрать хостера»).

    На VPS/выделенном сервере параметр без проблем меняется в php.ini.

  • Обязательно сделайте резервную копию работающего сайта, а лучше именно на копии проводите эксперименты. Если что-то пойдёт не так — вы можете потерять данные!

Этапы перехода

  • Подготовить сервер как показано выше
  • Добавить в /bitrix/php_interface/dbconn.php
  • Установить в /bitrix/.settings.php

    utf_mode => array(‘value’ => true, ‘readonly’ => true)

  • Изменить в настройках сайта кодировку с windows-1251 на utf-8
  • Изменить в настройках языка ru кодировку с windows-1251 на utf-8
  • Конвертировать все файлы в utf8
  • Конвертировать БД в utf8
  • Сменить в /bitrix/php_interface/after_connect.php

    $DB->Query(«SET NAMES ‘cp1251′»;);

    на

    $DB->Query(«SET NAMES ‘utf8′»;);

    и в файле /bitrix/php_interface/after_connect_d7.php

    $connection->queryExecute(«SET NAMES ‘utf8′»);
    $connection->queryExecute(‘SET collation_connection = «utf8_unicode_ci»‘);

  • Сбросить весь кеш
  • Выйти и зайти на сайт чтобы обновить данные сессии

Практическая сторона вопроса

После смены кодировки сайта публичная часть принимает вид:

Это нормально, браузер пытается показать данные не в той кодировке. Теперь после всех действий внешний вид восстановится, и мы увидим, что процесс прошёл успешно.

Большое число файлов надо конвертировать по шагам, для этого буду использовать

наработки для поиска вирусов

. По большому счёту, тут надо только переделать функцию замены в конвертацию через mb_convert_encoding.

Примечание. Часто при использовании внешних программ для конвертации в файлы добавляется специальная последовательность символов, т.н.

BOM

. Эти символы должны находиться только вначале файла, а поскольку итоговая html страница является составной из нескольких php файлов, то спецсимволы появляются в теле html страницы. Если делаете вручную — не сохраняйте с BOM!

Для конвертации базы надо сменить кодировку базы, всех таблиц и всех текстовых полей таблиц. Вручную это тоже делать не очень удобно. Решил сделать конвертацию файлов и базы в одном скрипте.

Скрипт выполняет операции:

— Конвертировать все файлы в utf8
— Конвертировать БД в utf8

Остальное следует делать вручную по списку в том порядке, как написано.

Можно скачать по ссылке:

convert_utf8.php

В итоге получил картинку

Теперь, словно, девушка даже слегка улыбнулась :)

Обновление от 20.02.2012

  • Теперь конвертируются все файлы, не только языки. При этом делается авто определение кодировки файла, а значит можно выполнять конвертацию повторно.
  • Для кодировки базы указывается сравнение utf8_unicode_ci (требуется продуктом).
  • Исправлены ошибки конвертации базы.
  • Шаг конвертации файлов можно пропустить.

Дополнение от 10.09.2018

Если вы использовали интеграцию с почтой, проверьте настройки ящиков, если там установлена кодировка, переключите кодировку сайта.
screen-09.png

В последнее время, в процессе работы, я все меньше и меньше встречаю сайты, которые находятся в некогда популярной кодировке «Windows-1251», приоритетно используемой на русскоязычных ресурсах.

Если верить «Wikipedia» («Википедия» — свободная энциклопедия), на начало апреля 2019 года лишь на 1% всех веб-страниц используется эта кодировка.

Скрывать не буду, я в числе тех, кто так же не использует ее в своих проекта, и вот почему:

  1. Разные проблемы в процессе работы кода.
  2. Лишние действия при работе с кодом в текстовых редакторах.
  3. Отсутствие поддержки многих языков.
  4. Наличие ошибок в верстке сайта при его проверке через validator.w3.org.

Чтобы избежать этих (и не только) неприятных моментов, сегодня в этой статье я подробно расскажу вам, как перевести сайт под управлением CMS 1C-Bitrix из кодировки «Windows-1251» в «UTF-8».

1. Конвертацию (смену кодировки) в CMS 1C-Bitrix мы начнем с самого главного – создания полного бэкапа сайта (его файлов и базы данных).

2. Далее попросите поддержку хостинга установить для сайта следующие директивы:

mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2

Можно попробовать внести изменения и самостоятельно одним из следующих способов.

2.1. Первый вариант – для тех, кто использует хостинг Beget.

2.1.1. Авторизуйтесь в панели управления хостингом.

2.1.2. Перейдите в раздел «Сайты».

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

2.1.3. На открывшейся странице, напротив настраиваемого сайта нажмите на иконку «PHP N», где N – используемая версия PHP на вашем сайте.

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

2.1.4. В открывшейся форме либо вручную добавьте директивы:

mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2

подобно этому:

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

либо в блоке «Применить оптимальные настройки для CMS:» выберите «Bitrix UTF-8» и сохраните изменение нажатием на кнопку «Применить».

2.2. Второй вариант – через конфигурационный файл php.ini. О том, как узнать адрес его местоположения на вашем хостинге, написано в этой нашей статье.

В нем вам необходимо найти и раскомментировать строки (удалить перед ними ;) содержащие «mbstring.internal_encoding» и «mbstring.func_overload», после чего значения выставить на «UTF-8» и «2» соответственно, чтобы получилась следующая картина:

mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2

2.3. Третий вариант – через файл .htaccess, который находится в корневой папке сайта.

Если вы используете стандартный файл .htaccess и версия PHP на хостинге до 5.4, то найдите блок, похожий на:

<IfModule mod_php5.c>
php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.internal_encoding UTF-8
</IfModule>

И добавьте (или раскомментируйте, если такие строки уже есть, удалив перед ними #) следующие строки:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2

Если вы используете стандартный файл .htaccess и версия PHP на хостинге 7+, то найдите блок, похожий на:

<IfModule mod_php5.c>
php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.internal_encoding UTF-8
</IfModule>

и замените его на:

<IfModule mod_php7.c>
	php_flag session.use_trans_sid off
	php_value mbstring.internal_encoding UTF-8
	php_value mbstring.func_overload 2
</IfModule>

Во всех остальных случаях попробуйте просто прописать следующие строки в самый верх этого же файла:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2

2.4. Четвертый вариант – через изменение настроек Apache (httpd.conf) – главный файл конфигурации хостинга/сервера. Его расположение может быть по разным путям, распространенные – это папки /usr/local/etc/apache/ и /etc/httpd/conf/. Более точную информацию на этот счет уточняйте у поддержки хостинга.

В нем для нужного виртуального хостинга (сайта) в блок «VirtualHost» вставьте следующие директивы:

php_admin_value mbstring.internal_encoding UTF-8
php_admin_value mbstring.func_overload 2

3. Авторизуйтесь в панели управления сайтом.

4. Перейдите в раздел «Настройки» – «Настройки продукта» – «Модули».

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

На открывшейся странице удалите модули (если они используются на вашем сайте) «Поиск» (без сохранения таблиц) и «Веб-Аналитика» (без сохранения таблиц, но с сохранением шаблонов сообщений).

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

5. Если на вашем сайте установлен модуль «Форум», вам необходимо удалить букву «ё» из словаря транслита. Для этого в левом меню перейдите по пути «Сервисы» – «Форумы» – «Фильтр нецензурных слов» – «Словарь транслита», найдите и удалите букву из списка.

6. Далее переходите в «Настройки» — «Настройки продукта» – «Языковые параметры» – «Региональные настройки».

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

7. На открывшейся странице находите «ru» в столбце «Название» и щелкаете по нему один раз левой кнопкой мыши.

8. На открывшейся странице, в графе «Кодировка» пишите:

UTF-8

После чего сохраняете изменения нажатием на соответствующую кнопку.

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

После сохранения у вас (в административной части сайта и на самом сайте) могут появиться знаки вопроса – не пугайтесь, на данном этапе это нормальное явление.

9. Далее подключитесь к вашему сайту по FTP.

10. В папке /bitrix/php_interface/ найдите и откройте файл dbconn.php, после чего сразу после <? добавьте:

define('BX_UTF', true);

Сохраните изменения и отправьте файл обратно на сайт.

11. В папке /bitrix/ найдите и откройте файл .settings.php. В нем блок:

'utf_mode' => 
array (
  'value' => false,
  'readonly' => true,
),

замените на:

'utf_mode' => array(
	'value' => true,
	'readonly' => true,
),

Сохраните изменения и отправьте файл обратно на сайт.

12. Скачайте архив в конце статьи, разархивируйте и содержимое (файл convert_utf8.php) загрузите по FTP в корень вашего сайта.

13. Перейдите на вашем сайте (через браузер) к файлу по пути /convert_utf8.php, после чего на открывшейся странице (если в предыдущих шагах нет никаких ошибок) у вас появится страница следующего вида:

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

13.1. Здесь вы жмете на «Проверка прав доступа» и ждете результата проверки. Если все хорошо (в противном случае будет предложен список файлов, которые запрещены для записи), появится страница следующего вида:

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

Жмете на «Конвертация файлов в UTF8».

13.2. После того, как процесс конвертации файлов завершиться успехом, вы увидите следующую картину:

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

Здесь вы жмете на «Конвертация базы данных в UTF8», и если вдруг вас перекинет на ваш сайт с формой входа – авторизовываетесь, введя данные от профиля администратора, после чего вас перекинет обратно на страницу выше, где вы вновь нажимаете «Конвертация базы данных в UTF8».

Процесс конвертации базы данных не быстрый, так что запаситесь терпением. По завершении появится сообщение следующего характера:

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

14. Возвращаетесь в FTP и удаляете из корневой папки сайта ранее загруженный файл convert_utf8.php.

15. Здесь же (в FTP) откройте файл after_connect.php в папке /bitrix/php_interface/ и строку:

$DB->Query("SET NAMES 'cp1251'");

замените на:

$DB->Query("SET NAMES 'utf8'");
$DB->Query('SET collation_connection = "utf8_unicode_ci"');

Сохраните изменения и отправьте файл обратно на сайт.

16. В этой же папке откройте файл after_connect_d7.php и строку:

$connection->queryExecute("SET NAMES 'cp1251'");

замените на:

$connection->queryExecute("SET NAMES 'utf8'");
$connection->queryExecute('SET collation_connection = "utf8_unicode_ci"'); 

Сохраните изменения и здесь и отправьте файл обратно на сайт.

17. Очистите весь кэш сайта.

18. Выйдите из панели управления сайтом, после чего авторизуйтесь вновь.

19. Установите удаленные из 4 шага модули. Для поиска сделайте переиндексацию (в левом меню «Настройки» – «Поиск» – «Переиндексация» и на открывшейся странице – «Переиндексировать»).

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

При большом количестве материалов на сайте этот процесс так же не быстрый, поэтому окончания придется подождать некоторое время.

20. Еще раз очистите весь кэш сайта.

21. Дополнительно: если вы используете интеграцию с почтой, в разделе «Сервисы» – «Почта» – «Почтовые ящики», в каждом почтовом ящике во вкладке «Дополнительные настройки», в графе «Кодировка, в которую конвертировать входящую почту», выставьте «(использовать кодировку сайта)».

Вот, собственно, и все. Инструкция тестировалась на 1C-Bitrix версии 18.0.

Остались вопросы? Задать их можете в комментариях под данной статьей.

«Лучше день потерять, потом за час долететь» © Крылья, ноги, хвост

Не так давно мне «посчастливилось» перевести веб сайт средних размеров из одной кодировки в другую. Если быть точнее из windows-1251 на UTF-8. Потом еще один — побольше, на третьем я сломался, и следуя верному принципу вышесказанного мне пришлось потерять кучку времени на написание скрипта по автоматизации этого процесса, но зато потом, за час я все-таки долетел.

Прежде чем приступить к самому скрипту, хотелось бы описать мои подходы к данной проблеме и особенности решения. Естественно я использовал любимый командный интерпретатор bash в среде Linux.

Из особенностей работы скрипта можно отметить следующее:

  • Сохранение исходных данных
  • Копирование файлов и папок с символами пробела (whitespace)
  • Сохранение атрибутов файлов и директорий (владельцы, режим доступа)
  • Замена meta charset= на необходимую кодовую страницу в требуемых файлах по маске
  • Настраиваемые параметры скрипта

Что-бы понять работу, выполняемую скриптом, привожу алгоритм обработки файлов:

  • Вычищаем целевую директорию
  • Копируем в нее без изменения все содержимое исходной папки
  • Удаляем из целевой папки по маске все файлы, которые в дальнейшем будут перекодированы
  • Конвертируем требуемые файлы из исходной папки в целевую, восстанавливая при этом их атрибуты
  • Меняем в сконвертированных файлах строки содержащие charset=windows-1251 на charset=UTF-8 (как пример для моего случая, но параметры могут быть легко изменены)

Настраиваемые параметры скрипта следующие:

Исходные параметры:
SDIR=»/usr/local/apache2/htdocs/site.ru/» — исходная директория сайта с символом слеша / в конце
SCP=»CP1251″ — исходная (from) кодовая страница для iconv
EXT=».*.(htm[l]*|php[3]*|js|css)$» — расширения файлов для перекодировки (здесь будут задействованы такие как .htm, .html, .php, .php3, .js, .css)
FCS=»windows-1251″ — название исходной кодовой страницы для замены мета charset= в файлах

Целевые параметры:
DROP_STRUCT=true — принимает значения false, true, регулируя условие: должна ли при старте вычищаться целевая директория

DDIR=»/usr/local/apache2/htdocs/new.site.ru/» — целевая директория сайта с символом слеша / в конце (должна существовать)
DCP=»UTF-8″ — целевая (to) кодовая страница для iconv
TCS=»UTF-8″ — название целевой кодовой страницы для замены мета charset= в файлах

А вот собственно и сам скрипт:


#!/bin/bash

# --- CONFIG SECTION ---

# Source Dir's params

SDIR="/usr/local/apache2/htdocs/site.ru/"    # with slash '/' in the end
SCP="CP1251"        # codepage for 'iconv'
EXT=".*.(htm[l]*|php[3]*|js|css)$"    #files extensions for coding
FCS="windows-1251"    # charset for replace

# Destination Dir's params

DROP_STRUCT=true    # false, true

DDIR="/usr/local/apache2/htdocs/new.site.ru/"    # with slash '/' in the end
DCP="UTF-8"        # codepage for 'iconv'
TCS="UTF-8"        # new charset

# --- END CONFIG SECTION ---

# Drop structure
#
if $DROP_STRUCT
then
    rm -dfr $DDIR*
fi

# Make new copy
#
cp -aR $SDIR* $DDIR

# Flush miscoded files
#
find $DDIR -type f | grep -E "$EXT" | xargs -i rm -f {}

# Convert From To
#
find $SDIR -type f | grep -E "$EXT" | sed "s#$SDIR##" | xargs -i echo {} | 
while read f
do
iconv -c -f $SCP -t $DCP -o "$DDIR$f" "$SDIR$f"

# Revert MODE & OWNER
chmod `find "$SDIR$f" -maxdepth 0 -printf "%m"` "$DDIR$f"
chown `find "$SDIR$f" -maxdepth 0 -printf "%u:%g"` "$DDIR$f"

# Replace strings
perl -pi -e "s#contents*=s*["'].*?charsets*=s*$FCS.*?["']#content="text/html; charset=$TCS"#g" "$DDIR$f"
done

А теперь, еще несколько полезных моментов.

1. Возможно даже после перекодировки в UTF-8 и замены meta content на charset=UTF-8 Вы все равно видите абракадабру или не то, что хотелось бы. Здесь все дело в том, что для нового сайта в UTF-8 необходимо заменить параметр default_charset для самого PHP, т.к. в глобальных переменных он явно установлен для другой кодовой страницы (windows-1251). Я делаю это в настройках виртуального хоста (httpd.conf) через:


php_admin_value default_charset UTF-8

2. Как правило, сейчас любой сайт хочет базы данных, которые Вам то-же надо будет перевести в UTF-8. Особого труда это не составляет, если под рукой есть phpMyAdmin или mysqldump, на крайний случай, для гиганских БД, наверняка придется писать скрипт конвертации и временно приостанавливать сервис. Простота идеи должна быть понятна: делаем дамп БД, перекодируем его с помощью того-же iconv и заменяем все, что связано с кодовыми страницами на желаемые данные, заливаем все в новую БД.

Еще более правильный вариант предложенный 4m@t!c сделать это на тестируемой БД с помощью ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

С БД так-же может вылезти небольшая абракадабра, проявляющаяся в некорректном отображении русских ‘ш’ ‘И’. Здесь также сыграет с нами шутку дефолтная кодовая страница для MySQL. Для устранения этой проблемы, после подключения к БД, Вам придется добавить в код Вашего сайта следующие строки:


mysql_query("SET NAMES 'utf8'");

Либо поменять default-character-set и default-collation для MySQL, если такое позволительно.

Помните!!! Подходите к таким переводам серьезно, сперва выполняя их на параллельной версии сайта и тестируйте, тестируйте, тестируйте.

Удачных переводов!

Добавлено:
Умные люди на Хабре и среди моих читателей дали очень дельные советы, за что им огромное спасибо. В связи с этим статья намного улучшилась.

Расскажу за конвертировать кодировку сайт. Покажу на конкретном примере.

Несмотря на то, что поддержка UTF8 появилась в продукте давно, остаются много проектов, сделанных на старой версии в cp1251. Теоретически сделать конвертацию не сложно, однако могут возникнуть трудности.
Сразу оговорюсь, что данный пост не претендует на статус официального документа, это должно быть хорошее подспорье по проблеме.

Подготовка к конвертации сайта

Для работы сайта на битрикс в utf8 абсолютно необходимо наличие модуля mbstring в php (это есть почти на любом хостинге) и установка параметра

mbstring.func_overload 2

Если у вас сайт на хостинге TimeWeb то это можно сделать через файл .htaccess

Этап перевода кодировки сайта на Битрикс

  • Добавить в /bitrix/php_interface/dbconn.php

  • Установить в /bitrix/.settings.php

    utf_mode => array(‘value’ => true, ‘readonly’ => true)

  • Изменить в настройках сайта кодировку с windows-1251 на utf-8
  • Изменить в настройках языка ru кодировку с windows-1251 на utf-8
  • Конвертировать все файлы в utf8
  • Конвертировать БД в utf8
  • Сменить в /bitrix/php_interface/after_connect.php

    $DB->Query(«SET NAMES ‘cp1251′»;);

    на

    $DB->Query(«SET NAMES ‘utf8′»;);

    и в файле /bitrix/php_interface/after_connect_d7.php

    $connection->queryExecute(«SET NAMES ‘utf8′»);
    $connection->queryExecute(‘SET collation_connection = «utf8_unicode_ci»‘);

  • Сбросить весь кеш
  • Выйти и зайти на сайт чтобы обновить данные сессии

Практическая сторона вопроса

После смены кодировки сайта публичная часть принимает вид:

Это нормально, браузер пытается показать данные не в той кодировке. Теперь после всех действий внешний вид восстановится, и мы увидим, что процесс прошёл успешно.

Большое число файлов надо конвертировать по шагам, для этого буду использовать 

наработки для поиска вирусов

. По большому счёту, тут надо только переделать функцию замены в конвертацию через mb_convert_encoding.

Примечание. Часто при использовании внешних программ для конвертации в файлы добавляется специальная последовательность символов, т.н. 

BOM

. Эти символы должны находиться только вначале файла, а поскольку итоговая html страница является составной из нескольких php файлов, то спецсимволы появляются в теле html страницы. Если делаете вручную — не сохраняйте с BOM!

Для конвертации базы надо сменить кодировку базы, всех таблиц и всех текстовых полей таблиц. Вручную это тоже делать не очень удобно. Решил сделать конвертацию файлов и базы в одном скрипте.

Скрипт выполняет операции:

— Конвертировать все файлы в utf8
— Конвертировать БД в utf8

Остальное следует делать вручную по списку в том порядке, как написано.

Можно скачать по ссылке: 

convert_utf8.php 

В итоге получил картинку

Издержки свободы выбора. За те годы, пока преимущества формата UTF-8 сделались очевидны большинству разработчиков и многим заказчикам, были произведены многие тысячи сайтов в кодировке cp1251. Со временем их владельцы приходят к пониманию выгод использования UTF-8 и принимают решение сменить кодировку материалов сайта. Как это сделать на практике?

 
1. Подготовка

Конвертацию выполняет модуль mbstring. Для его работы необходимо установить параметр

mbstring.func_overload 2

Если вы используете для хостинга VPS-сервер, то параметр легко настроить в php.ini. Если нет, то ситуация усложняется. Будьте особо внимательны: с версии php 5.2.8 параметр меняется глобально на весь сервер. Обратитесь к хостеру, но не соглашайтесь на использование CGI.

Сделайте реззервную копию сайта и выполняйте конвертацию именно на ней. В случае неудачи данные основного сайта не пострадают.

2. Задание параметров конвертации

Задайте язык сайта, формат даты и кодировку.

3. Настройте dbconn.php

В файле в /bitrix/php_interface/dbconn.php добавьте строку

define(«BX_UTF», true);

4. Настройте кодировку сайта

В настройках сайта смените кодировку с windows-1251 на utf-8.

5. Настройте кодировку языка

В настройках языка смените кодировку с windows-1251 на utf-8.

6. Конвертируйте файлы в utf-8

7. Конвертируйте ьазу данных в utf-8

8. Отредактируйте файл after_connect.php

В файле /bitrix/php_interface/after_connect.php найдите строку

$DB->Query(«SET NAMES ‘cp1251′»

И замените на строку

$DB->Query(«SET NAMES ‘utf8′»

9. Очистите кэш всего сайта

10. Выйдите из сеанса работы с панелью управления, закройте браузер, потом откройте его и снова зайдите на сайт.

Обратите внимание: если конвертируете файлы в utf-8 вручную, не сохраняйте специальную последовательность BOM.

——————————-
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Как поменять кодировку на сайте
Во многих скриптах экономических проектов (будь то фруктовая ферма, букс, хайп, удвоитель и т.д.) мы иногда сталкиваемся с такой проблемой ⇓.

Как поменять кодировку на сайте
Вместо привычной нашему глазу кириллице вот такие кракозябры, как это исправить? Как поменять кодировку на сайте? Давайте с Вами будем переводить сайт в кодировку UTF-8. Если Вы хотите перевести в любую другую кодировку, то всё будет аналогично. 

Меняем кодировку при помощи Notepad++

Самый лучший способ поменять кодировку в скрипте это блокнот Notepad++ (если у вас нет Notepad++ на компьютере, то Гугл в помощь, только качаем блокнот с официального сайта!).

Все текстовые файлы (html, php, js, txt, в общем, в которых есть текст) перекодируйте в UTF-8. Сделать это очень просто через Notepad++ в пункте «Преобразовать в UTF-8 без BOM» из меню «Кодировки». Причём именно все файлы, которые даже ничего не выводят на страницу.

Поменять кодировку с помощью файла .htaccess

Если же не хотите возится с каждым файлом в скрипте, то есть и такая альтернатива:

1. Поместите в корень сайта файл .htaccess с текстом AddDefaultCharset UTF-8.
2. Поменяйте кодировку в мета-теге <meta http-equiv=»Content-type» content=»text/html; charset=utf-8″ />.

Если Ваш сайт не использует базу данных, то на этом этапе можно закончить менять кодировку. Но если база данных есть, то нужно сделать ещё и следующие шаги:

1. Сразу после подключения к БД выполните запрос: SET NAMES UTF-8
2. В phpMyAdmin поменяйте кодировку базы данных на utf8_general_ci в её настройках.
3. Поставьте у всех таблиц кодировку utf8_general_ci.
4. У всех текстовых типов полей так же поставьте кодировку utf8_general_ci.

Всё, теперь Ваша кодировка на сайте изменена. Добавлю лишь, что если где-то в коде Вы занимались преобразованием из одной кодировки в другую (например, через функцию iconv()), то тщательно проверьте это место, возможно, там появится проблема.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Понравилась статья? Поделить с друзьями:
  • Как перевести с 32 бит на 64 windows 10 без переустановки
  • Как перевести разделы mbr в gpt при установке windows
  • Как перевести рабочий стол на диск d в windows 10
  • Как перевести пуск влево windows 11
  • Как перевести папку загрузки на диск d в windows 10