Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Смена кодировки с windows-1251 на UTF-8
Добрый день.Обьясните мне пожалуйста хоть кто-нибудь как поменять кодировку windows-1251 на UTF-8.Чтобы русский язык нормально отображался когда на английском форум по умолчанию.Я не понимаю как это сделать.Где ее прописывать?Как? Только обьясните пожалуйста по шагам ,как для дебила.Я уже месяц не могу решить эту проблему.Запарился.
Последний раз редактировалось PlusPlus 12.12.2007 8:01, всего редактировалось 2 раза.
-
crash
- Former team member
- Сообщения: 6517
- Стаж: 19 лет 3 месяца
- Откуда: Бердск
- Поблагодарили: 15 раз
- Контактная информация:
Сообщение
crash »
1. переводите в utf все русские файлы, например с помощью akelpad. В lang_main.php указываете вашу кодировку
2. делаете бэкап и переводите бэкап в utf
3. Проверить бэкап, чтобы для таблиц не указывал кодировкак, если укзываается то отредактировать
4. Можете удалить базу и создать новую в utf и сопоставление тоже utf выбрать, но лучше создать новую. Старая всегда пригодится
5. Восстанавливаете бэкап.
-
Палыч
- Former team member
- Сообщения: 9683
- Стаж: 17 лет 4 месяца
- Откуда: Питер
- Благодарил (а): 3 раза
- Поблагодарили: 454 раза
- Контактная информация:
Сообщение
Палыч »
+
с учётом того, что
PlusPlus писал(а):как для дебила
По 1. «Переводите» путём открытия в текстовом редакторе и «сохранить как» в кодировке UTF-8
По 2. Бекап — тоже текстовый файл, «перевод» как в п.1
По 3. Редактируете при необходимости как текстовый файл, стараясь не рвать строки
По 4. Если создаёте новую базу, не забыть соответственно её имени отредактировать файл config.php
По 5. Хороший принцип: чем бекап делал, тем и восстанавливай.
Не все то WINDOWS, что висит… phpBB только учусь.
ICQ, email, ЛС — только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
Скажите ,я правильно понимаю что Бекап делается тогда когда хочешь перевести информацию которая уже есть на форуме в кодровку UTF-8.Ну а если форум еще не открыт,и в нем нет ничего пока, то пoлучается Бекап делать не надо?Или я не прав?Поправте если я не прав.В чем смысл?
-
crash
- Former team member
- Сообщения: 6517
- Стаж: 19 лет 3 месяца
- Откуда: Бердск
- Поблагодарили: 15 раз
- Контактная информация:
Сообщение
crash »
PlusPlus
если форум еще не ставили, то не делайте бэкап, просто подготовьте базу в ютф
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
ОК,я делаю так.
Захожу в File Mаnager ,
потом захожу в папку Forum —
нахожу папку Language,
нахожу папку lang_russian ,откываю ее,
там нахожу папку lang_main.php
открываю в редакторе исходного текста ,
там нахожу строку &lang [‘ENCODING’] = ‘windows-1251’
меняю ету строку на &lang [‘ENCODING’] = ‘UTF-8’
Нажимаю сохранить изменения.
После этого проделываю то же самое с English.
нахожу папку Language,
нахожу папку lang_english ,откываю ее,
там нахожу папку lang_main.php
открываю в редакторе исходного текста ,
там нахожу строку &lang [‘ENCODING’] = ‘iso-8859-1’
меняю ее на &lang [‘ENCODING’] = ‘UTF-8’
Нажимаю сохранить изменения.
Захожу на форум в другом браузере,там пишет :
Parse error: syntax error, unexpected T_STRING in /home/latvianw/public_html/forum/language/lang_russian/lang_main.php on line 50
Люди подскажите что я делаю неправильно?
-
Rayden
- Former team member
- Сообщения: 3739
- Стаж: 18 лет 3 месяца
- Поблагодарили: 44 раза
- Контактная информация:
Сообщение
Rayden »
Ты файлы оставил в старой кодировке.
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
Rayden писал(а):Ты файлы оставил в старой кодировке.
Можно попонятней вопрос.Какие именно фаилы?
Я начинающий.Пытаюсь разобратся сам ,спросить некого кроме вас.
P.S.Насколько я понимаю я фаилы не менял.Как это делать подскажите пожалуйста.Все что я сделал я подробно описал.
-
Rayden
- Former team member
- Сообщения: 3739
- Стаж: 18 лет 3 месяца
- Поблагодарили: 44 раза
- Контактная информация:
Сообщение
Rayden »
Ты читаешь что тебе пишут?
crash писал(а):1. переводите в utf все русские файлы, например с помощью akelpad. В lang_main.php указываете вашу кодировку
Мало заменить кодировку в файле, надо чтоб сам файл был в нужной кодировке. Тебе написали — переведите все русские файлы в ютф
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
Rayden писал(а):Ты читаешь что тебе пишут?
crash писал(а):1. переводите в utf все русские файлы, например с помощью akelpad. В lang_main.php указываете вашу кодировку
Мало заменить кодировку в файле, надо чтоб сам файл был в нужной кодировке. Тебе написали — переведите все русские файлы в ютф
Да ,я читаю что мне пишут,но дело в том что я не очень понимаю пока в этом.Вот я и прошу помочь.
Извините за незнание,но не могли бы обьяснить как перевести русские фаилы в UFT-8?Или подскажите пожалуйста где об этом можно прочитать.Я не знаю как это сделать,но есть большое желание узнать.
-
Палыч
- Former team member
- Сообщения: 9683
- Стаж: 17 лет 4 месяца
- Откуда: Питер
- Благодарил (а): 3 раза
- Поблагодарили: 454 раза
- Контактная информация:
Сообщение
Палыч »
PlusPlus писал(а): как перевести русские фаилы в UFT-8?
Палыч писал(а): «Переводите» путём открытия в текстовом редакторе и «сохранить как» в кодировке UTF-8
Не все то WINDOWS, что висит… phpBB только учусь.
ICQ, email, ЛС — только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
А как это превести «путем открытия»?Ну хорошо,я откыл текстовый редактор.И как перевести?Что делать то надо?Я знаю значение слова перевести с английского языка например на русский,но как перевестри в кодировку?Как это?Как сохранить в кодировке?Дело в том что я не понимаю специализированных терминов.Я только учусь.Не могли бы обяснить подробнее не одним предложением?
-
Палыч
- Former team member
- Сообщения: 9683
- Стаж: 17 лет 4 месяца
- Откуда: Питер
- Благодарил (а): 3 раза
- Поблагодарили: 454 раза
- Контактная информация:
Сообщение
Палыч »
PlusPlus
Пардон, но вы действительно идиот, или притворяетесь…?
Палыч писал(а): «Переводите» путём открытия в текстовом редакторе и «сохранить как» в кодировке UTF-8
1. Нажимаете пункт меню на вашем компьютере, на который у вас настроен вызов тестового редактора notepad (в просторечии — блокнот windows)
2. Открываете в этом редакторе нужный вам файл (верхнее меню — файл — открыть — выбрать нужный из списка — нажать клавишу Enter)
3. Сохраняете в нужной вам кодировке (верхнее меню — файл — сохранить как — в открывшемся окне нижнее выпадающее меню — кодировка — выбрать UTF-8) — в поле имени файла ввести желаемое, при необходимости, — не забыть нажать большую клавишу Enter).
4. Купить в букинистическом магазине книгу «IBM-PC для пользователя»
Не все то WINDOWS, что висит… phpBB только учусь.
ICQ, email, ЛС — только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
PlusPlus
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 15 лет 10 месяцев
Сообщение
PlusPlus »
Rayden писал(а):PlusPlus
Кстати, поправь название темы.
Хорошо,как тогда лучше написать в названии?Тему вообще лучше перенести в тему «несовместимость кодировок».
Добавлено спустя 17 минут 13 секунд:
Палыч писал(а):PlusPlus
Пардон, но вы действительно идиот, или притворяетесь…?Палыч писал(а): «Переводите» путём открытия в текстовом редакторе и «сохранить как» в кодировке UTF-8
1. Нажимаете пункт меню на вашем компьютере, на который у вас настроен вызов тестового редактора notepad (в просторечии — блокнот windows)
2. Открываете в этом редакторе нужный вам файл (верхнее меню — файл — открыть — выбрать нужный из списка — нажать клавишу Enter)
3. Сохраняете в нужной вам кодировке (верхнее меню — файл — сохранить как — в открывшемся окне нижнее выпадающее меню — кодировка — выбрать UTF-8) — в поле имени файла ввести желаемое, при необходимости, — не забыть нажать большую клавишу Enter).
4. Купить в букинистическом магазине книгу «IBM-PC для пользователя»
Хорошо ,спасибо. Я вас понял. Дальше вопрос.У меня форум находится на хосте а не на моем комютере.Как это сделать когда он на компе вроде понятно.Но как это сделать если все фаилы эти на хосте?Я же не могу туда зайти через notepad —
Палыч писал(а):
Открываете в этом редакторе нужный вам файл (верхнее меню — файл — открыть — выбрать нужный из списка — нажать клавишу Enter)
Сохраняете в нужной вам кодировке (верхнее меню — файл — сохранить как — в открывшемся окне нижнее выпадающее меню — кодировка — выбрать UTF-8) — в поле имени файла ввести желаемое, при необходимости, — не забыть нажать большую клавишу Enter).
Можно ли эти фаилы скопировать на десктоп моего копютера , поменять ,как вы писали на УТФ ,и снова скопировать их обратно в папку language там где они хранятся на хосте? Получится ли так? Будут ли они там в нужной кодировке? Или нет?
Или как мне тогда изменить их если они находятся на на хосте а не на моем компе?
-
rxu
- phpBB Guru
- Сообщения: 16163
- Стаж: 17 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 517 раз
- Поблагодарили: 2057 раз
- Контактная информация:
Сообщение
rxu »
PlusPlus писал(а):Получится ли так?
Только так и получится.
Проблема кодировок часто возникает при написании парсеров, чтении данных из xml и CSV файлов. Ниже представлены способы эту проблему решить.
1
windows-1251 в UTF-8
$text = iconv('windows-1251//IGNORE', 'UTF-8//IGNORE', $text);
echo $text;
PHP
$text = mb_convert_encoding($text, 'UTF-8', 'windows-1251');
echo $text;
PHP
2
UTF-8 в windows-1251
$text = iconv('utf-8//IGNORE', 'windows-1251//IGNORE', $text);
echo $text;
PHP
$text = mb_convert_encoding($text, 'windows-1251', 'utf-8');
echo $text;
PHP
3
Когда ни что не помогает
$text = iconv('utf-8//IGNORE', 'cp1252//IGNORE', $text);
$text = iconv('cp1251//IGNORE', 'utf-8//IGNORE', $text);
echo $text;
PHP
Иногда доходит до бреда, но работает:
$text = iconv('utf-8//IGNORE', 'windows-1251//IGNORE', $text);
$text = iconv('windows-1251//IGNORE', 'utf-8//IGNORE', $text);
echo $text;
PHP
4
File_get_contents / CURL
Бывают случаи когда file_get_contents()
или CURL возвращают иероглифы (ÐлмазнÑе боÑÑ) – причина тут не в кодировке, а в отсутствии BOM-метки.
$text = file_get_contents('https://example.com');
$text = "\xEF\xBB\xBF" . $text;
echo $text;
PHP
Ещё бывают случаи, когда file_get_contents() возвращает текст в виде:
�mw�Ƒ0�����&IkAI��f��j4/{�</�&�h�� ��({�o�����:/��<g���g��(�=�9�Paɭ
Это сжатый текст в GZIP, т.к. функция не отправляет правильные заголовки. Решение проблемы через CURL:
function getcontents($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
echo getcontents('https://example.com');
PHP
12.01.2017, обновлено 02.11.2021
Другие публикации
Отправка e-mail в кодировке UTF-8 с вложенными файлами и возможные проблемы.
JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и…
Описание значений глобального массива $_SERVER с примерами.
Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и…
В статье представлены различные PHP-расширения для чтения файлов XLS, XLSX, описаны их плюсы и минусы, а также примеры…
Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами API.
Кодировка текста – это схема нумерации символов, в которой каждому символу, цифре или знаку присвоено соответствующее число. Кодировку используют для сохранения и обработки текста на компьютере. Каждый раз при сохранении текста в файл он сохраняется с использованием определенной схемы кодирования, и при открытии этого файла необходимо использовать такую же схему, иначе восстановить исходный текст не получится. Самыми популярными кодировками для кириллицы сейчас являются UTF-8, Windows-1251 (CP1251, ANSI).
Для того чтобы программа смогла правильно открыть текстовый файл, иногда приходится вручную менять кодировку, перекодируя текст из одной схемы в другую. Например, не редко возникают проблемы с открытием файлов CSV, XML, SQL, TXT, PHP.
В этой небольшой статье мы расскажем о том, как изменить кодировку текстового файла на UTF-8, Windows-1251 или любую другую.
Блокнот Windows
Если вы используете операционную систему Windows 10 или Windows 11, то вы можете изменить кодировку текста с помощью стандартной программы Блокнот. Для этого нужно открыть текстовый файл с помощью Блокнота и воспользоваться меню «Файл – Сохранить как».
В открывшемся окне нужно указать новое название для файла, выбрать подходящую кодировку и нажать на кнопку «Сохранить».
К сожалению, для подобных задач программа Блокнот часто не подходит. С ее помощью нельзя открывать документы большого размера, и она не поддерживает многие кодировки. Например, с помощью Блокнота нельзя открыть текстовые файлы в DOS 866.
Notepad++
Notepad++ (скачать) является одним из наиболее продвинутых текстовых редакторов. Он обладает подсветкой синтаксиса языков программирования, позволяет выполнять поиск и замену по регулярным выражениям, отслеживать изменения в файлах, записывать и воспроизводить макросы, считать хеш-сумы и многое другое. Одной из основных функций Notepad++ является поддержка большого количества кодировок текста и возможность изменения кодировки текстового файла в UTF-8 или Windows 1251.
Для того чтобы изменить кодировку текста с помощью Notepad++ файл нужно открыть в данной программе. Если программа не смогла правильно определить схему кодирования текста, то это можно сделать вручную. Для этого нужно открыть меню «Кодировки – Кириллица» и выбрать нужный вариант.
После открытия текста можно изменить его кодировку. Для этого нужно открыть меню «Кодировки» и выбрать один из вариантов преобразования. Notepad++ позволяет изменить текущую кодировку текста на ANSI (Windows-1251), UTF-8, UTF-8 BOM, UTF-8 BE BOM, UTF-8 LE BOM.
После преобразования файл нужно сохранить с помощью меню «Файл – Сохранить» или комбинации клавиш Ctrl-S.
Akelpad
Akelpad (скачать) – достаточно старая программа для работы с текстовыми файлами, которая все еще актуальна и может быть полезной. Фактически Akelpad является более продвинутой версией стандартной программы Блокнот из Windows. С его помощью можно открывать текстовые файлы большого размера, которые не открываются в Блокноте, выполнять поиск и замену с использованием регулярных выражений и менять кодировку текста.
Для того чтобы изменить кодировку текста с помощью Akelpad файл нужно открыть в данной программе. Если после открытия файла текст не читается, то нужно воспользоваться меню «Файл – Открыть».
В открывшемся окне нужно выделить текстовый файл, снять отметку «Автовыбор» и выбрать подходящую кодировку из списка. При этом в нижней части окна можно видеть, как будет отображаться текст.
Для того чтобы изменить текущую кодировку текста нужно воспользоваться меню «Файл – Сохранить как» и сохранить документ с указанием новой схемы кодирования.
В отличие от Notepad++, текстовый редактор Akelpad позволяет сохранить файл в практически любой кодировке. В частности, доступны Windows 1251, DOS 886, UTF-8 и многие другие.
Посмотрите также:
- Чем открыть PDF файл в Windows 7 или Windows 10
- Как перевернуть страницу в Word
- Как копировать текст с помощью клавиатуры
- Как сделать рамку в Word
- Как сделать буклет в Word
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
11 / 10 / 3 Регистрация: 25.09.2015 Сообщений: 238 |
|
1 |
|
25.09.2015, 18:03. Показов 18881. Ответов 12
Здравствуйте.
0 |
53 / 53 / 28 Регистрация: 23.04.2011 Сообщений: 214 |
|
25.09.2015, 19:02 |
2 |
Как вариант — перекодировать в Notepad++
0 |
11 / 10 / 3 Регистрация: 25.09.2015 Сообщений: 238 |
|
25.09.2015, 19:29 [ТС] |
3 |
Как вариант — перекодировать в Notepad++ Попробовал. Добавлено через 1 минуту
0 |
53 / 53 / 28 Регистрация: 23.04.2011 Сообщений: 214 |
|
25.09.2015, 19:33 |
4 |
Ctrl+A, Ctrl+X, меняем кодировку, Ctrl+C
0 |
2964 / 2593 / 1068 Регистрация: 15.12.2012 Сообщений: 9,831 Записей в блоге: 11 |
|
25.09.2015, 19:39 |
5 |
0 |
11 / 10 / 3 Регистрация: 25.09.2015 Сообщений: 238 |
|
25.09.2015, 19:43 [ТС] |
6 |
lounge.rar Я конечно очень благодарен но можно поподробней.
0 |
2964 / 2593 / 1068 Регистрация: 15.12.2012 Сообщений: 9,831 Записей в блоге: 11 |
|
25.09.2015, 19:50 |
7 |
РешениеМайкл Скоуфилд
1 |
Юзер с абсолютным слухом 709 / 489 / 195 Регистрация: 17.12.2010 Сообщений: 1,419 |
|
25.09.2015, 20:05 |
8 |
На всякий пожарный в Notepad++ после перекодирования сделайте ещё любое изменение содержимого документа, сохраните изменение (нажмите на дискетку) и после этого убедитесь, что документ перекодировался. Для этого ещё раз зайдите главное меню-кодировки. Там напротив Кодировка в UTF-8 должна стоять птичка.
0 |
11 / 10 / 3 Регистрация: 25.09.2015 Сообщений: 238 |
|
25.09.2015, 20:06 [ТС] |
9 |
Не уверен, что этот хостинг не поддерживает win-1251… Он поддерживает win-1251 но в этом формате нет возможности редактирования файлов прямо на хостинге.
0 |
2964 / 2593 / 1068 Регистрация: 15.12.2012 Сообщений: 9,831 Записей в блоге: 11 |
|
25.09.2015, 20:27 |
10 |
Он поддерживает win-1251 но в этом формате нет возможности редактирования файлов прямо на хостинге. Надо испытать… Добавлено через 11 минут
0 |
Юзер с абсолютным слухом 709 / 489 / 195 Регистрация: 17.12.2010 Сообщений: 1,419 |
|
25.09.2015, 20:53 |
11 |
Да, оказывается, во втором файл-менеджере можно, но изначально русские буквы отображаются среднеевропейской кодировкой, (как в правой части скрина) а после сохранения изменения предстают в таком виде: дельта-диез-юникод в четырёх цифрах. А в первом файл-менеджере у меня выскакивает, как в левой части скрина. Миниатюры
0 |
11 / 10 / 3 Регистрация: 25.09.2015 Сообщений: 238 |
|
25.09.2015, 21:51 [ТС] |
12 |
кириллические символы отображаются крякозябрами Провёл все манипуляции с перекодировкой, залил на хостинджер.
0 |
Fedor92 |
25.09.2015, 22:35
|
Не по теме:
кириллические символы отображаются нормально. Речь шла о файлах сохранённых в кодировке windows-1251… C utf-8 проблем не возникнет…
0 |
В последнее время, в процессе работы, я все меньше и меньше встречаю сайты, которые находятся в некогда популярной кодировке «Windows-1251», приоритетно используемой на русскоязычных ресурсах.
Если верить «Wikipedia» («Википедия» — свободная энциклопедия), на начало апреля 2019 года лишь на 1% всех веб-страниц используется эта кодировка.
Скрывать не буду, я в числе тех, кто так же не использует ее в своих проекта, и вот почему:
- Разные проблемы в процессе работы кода.
- Лишние действия при работе с кодом в текстовых редакторах.
- Отсутствие поддержки многих языков.
- Наличие ошибок в верстке сайта при его проверке через 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. Перейдите в раздел «Сайты».
2.1.3. На открывшейся странице, напротив настраиваемого сайта нажмите на иконку «PHP N», где N – используемая версия PHP на вашем сайте.
2.1.4. В открывшейся форме либо вручную добавьте директивы:
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2
подобно этому:
либо в блоке «Применить оптимальные настройки для 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. Перейдите в раздел «Настройки» – «Настройки продукта» – «Модули».
На открывшейся странице удалите модули (если они используются на вашем сайте) «Поиск» (без сохранения таблиц) и «Веб-Аналитика» (без сохранения таблиц, но с сохранением шаблонов сообщений).
5. Если на вашем сайте установлен модуль «Форум», вам необходимо удалить букву «ё» из словаря транслита. Для этого в левом меню перейдите по пути «Сервисы» – «Форумы» – «Фильтр нецензурных слов» – «Словарь транслита», найдите и удалите букву из списка.
6. Далее переходите в «Настройки» — «Настройки продукта» – «Языковые параметры» – «Региональные настройки».
7. На открывшейся странице находите «ru» в столбце «Название» и щелкаете по нему один раз левой кнопкой мыши.
8. На открывшейся странице, в графе «Кодировка» пишите:
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, после чего на открывшейся странице (если в предыдущих шагах нет никаких ошибок) у вас появится страница следующего вида:
13.1. Здесь вы жмете на «Проверка прав доступа» и ждете результата проверки. Если все хорошо (в противном случае будет предложен список файлов, которые запрещены для записи), появится страница следующего вида:
Жмете на «Конвертация файлов в UTF8».
13.2. После того, как процесс конвертации файлов завершиться успехом, вы увидите следующую картину:
Здесь вы жмете на «Конвертация базы данных в UTF8», и если вдруг вас перекинет на ваш сайт с формой входа – авторизовываетесь, введя данные от профиля администратора, после чего вас перекинет обратно на страницу выше, где вы вновь нажимаете «Конвертация базы данных в UTF8».
Процесс конвертации базы данных не быстрый, так что запаситесь терпением. По завершении появится сообщение следующего характера:
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 шага модули. Для поиска сделайте переиндексацию (в левом меню «Настройки» – «Поиск» – «Переиндексация» и на открывшейся странице – «Переиндексировать»).
При большом количестве материалов на сайте этот процесс так же не быстрый, поэтому окончания придется подождать некоторое время.
20. Еще раз очистите весь кэш сайта.
21. Дополнительно: если вы используете интеграцию с почтой, в разделе «Сервисы» – «Почта» – «Почтовые ящики», в каждом почтовом ящике во вкладке «Дополнительные настройки», в графе «Кодировка, в которую конвертировать входящую почту», выставьте «(использовать кодировку сайта)».
Вот, собственно, и все. Инструкция тестировалась на 1C-Bitrix версии 18.0.
Остались вопросы? Задать их можете в комментариях под данной статьей.