Как поменять кодировку windows 1251 на utf 8

Уважаемые пользователи!
Напоминаем, что с 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
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 в PHP

JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и…

Массив $_SERVER

Описание значений глобального массива $_SERVER с примерами.

Получить фото из Instagram без API

Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и…

Обзор PHP расширений для чтения файлов Excel

В статье представлены различные PHP-расширения для чтения файлов XLS, XLSX, описаны их плюсы и минусы, а также примеры…

Бот Телеграм на PHP

Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами 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++

После открытия текста можно изменить его кодировку. Для этого нужно открыть меню «Кодировки» и выбрать один из вариантов преобразования. Notepad++ позволяет изменить текущую кодировку текста на ANSI (Windows-1251), UTF-8, UTF-8 BOM, UTF-8 BE BOM, UTF-8 LE BOM.

изменить кодировку в Notepad++

После преобразования файл нужно сохранить с помощью меню «Файл – Сохранить» или комбинации клавиш Ctrl-S.

Akelpad

Akelpad (скачать) – достаточно старая программа для работы с текстовыми файлами, которая все еще актуальна и может быть полезной. Фактически Akelpad является более продвинутой версией стандартной программы Блокнот из Windows. С его помощью можно открывать текстовые файлы большого размера, которые не открываются в Блокноте, выполнять поиск и замену с использованием регулярных выражений и менять кодировку текста.

Для того чтобы изменить кодировку текста с помощью Akelpad файл нужно открыть в данной программе. Если после открытия файла текст не читается, то нужно воспользоваться меню «Файл – Открыть».

открыть файл в Akelpad

В открывшемся окне нужно выделить текстовый файл, снять отметку «Автовыбор» и выбрать подходящую кодировку из списка. При этом в нижней части окна можно видеть, как будет отображаться текст.

выбрать кодировку в Akelpad

Для того чтобы изменить текущую кодировку текста нужно воспользоваться меню «Файл – Сохранить как» и сохранить документ с указанием новой схемы кодирования.

изменить кодировку в 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


Студворк — интернет-сервис помощи студентам

Здравствуйте.
Не давно начал изучать HTML, XHTML, CSS.
Столкнулся с небольшой проблемой.
Изучаю по книге, по ходу чтения там идёт развитие, улучшение нескольких сайтов.
Кодировка символов на ПК Windows-1251, а когда хотел залить свой сайт на Hostinger выяснил что нужно UTF-8, иначе редактировать файлы на хосте нет возможности.
Как перекодировать сайт с Windows-1251 на UTF-8?
И ещё один ньюанс. Когда пишешь на UTF-8 то потом открывая HTML файл в браузере вместо букв иероглифы.
Прикреплю архив с сайтом.lounge.rar



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

Цитата
Сообщение от Micheal
Посмотреть сообщение

Как вариант — перекодировать в Notepad++

Попробовал.
Выделил всё, нажал перекодировать в UTF-8 изменил charset, толку ноль.

Добавлено через 1 минуту
Только теперь при открытие сайта вместо русских символов ромбики со знаком вопроса внутри.
Залил файл на Hostinger, попробовал его там открыть для редактирования.
Говорит что файл не в формате UTF-8



0



53 / 53 / 28

Регистрация: 23.04.2011

Сообщений: 214

25.09.2015, 19:33

4

Ctrl+A, Ctrl+X, меняем кодировку, Ctrl+C



0



Эксперт HTML/CSS

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

Цитата
Сообщение от Fedor92
Посмотреть сообщение

lounge.rar

Я конечно очень благодарен но можно поподробней.
Как вы его перекодировали, что б я мог сам это зделать.
Когда писал на utf-8 у меня потом были иероглифы только вместо русских слов.
Можете объяснить?



0



Эксперт HTML/CSS

2964 / 2593 / 1068

Регистрация: 15.12.2012

Сообщений: 9,831

Записей в блоге: 11

25.09.2015, 19:50

7

Лучший ответ Сообщение было отмечено Майкл Скоуфилд как решение

Решение

Майкл Скоуфилд
1. Меняем в теге meta, расположенном в head, кодировку с windows-1251 на utf-8…
2. Создаём новый файл с кодировкой utf-8, с помощью копипаста(описанного в посте №4, последний пункт Ctrl+V) переносим код из старого файла в новый, сохраняем новый файл с заменой старого, все манипуляции производим с файлами, в которых кодировка не соответствует utf-8… Пару слов о hostinger… Не уверен, что этот хостинг не поддерживает win-1251…



1



Юзер с абсолютным слухом

709 / 489 / 195

Регистрация: 17.12.2010

Сообщений: 1,419

25.09.2015, 20:05

8

На всякий пожарный в Notepad++ после перекодирования сделайте ещё любое изменение содержимого документа, сохраните изменение (нажмите на дискетку) и после этого убедитесь, что документ перекодировался. Для этого ещё раз зайдите главное меню-кодировки. Там напротив Кодировка в UTF-8 должна стоять птичка.
Вообще, Notepad++ это отличная вещь для онлайн-редактирования по FTP. Т. е., Вы редактируете в Notepad++, жмёте на дискетку, а изменения сохраняются на сервере. Это избавит от хлопот, связанных с HTML-редактором хостингера. Вначале нужно будет в Notepad++ настроить FTP-соединение, нажав на крайнюю справа кнопку в панели инструментов. Хостингер 1251 поддерживает, но речь идёт о том, что она не редактируется в редакторах хостингера.



0



11 / 10 / 3

Регистрация: 25.09.2015

Сообщений: 238

25.09.2015, 20:06

 [ТС]

9

Цитата
Сообщение от Fedor92
Посмотреть сообщение

Не уверен, что этот хостинг не поддерживает win-1251…

Он поддерживает win-1251 но в этом формате нет возможности редактирования файлов прямо на хостинге.
Да и мне на будущее всё равно нужно будет работать с UTF-8.
Очень благодарен за помощь.



0



Эксперт HTML/CSS

2964 / 2593 / 1068

Регистрация: 15.12.2012

Сообщений: 9,831

Записей в блоге: 11

25.09.2015, 20:27

10

Цитата
Сообщение от Майкл Скоуфилд
Посмотреть сообщение

Он поддерживает win-1251 но в этом формате нет возможности редактирования файлов прямо на хостинге.

Надо испытать… Что код можно поправить — это помню, а кириллические символы отображаются крякозябрами потому-что файловый менеджер работает в ANSI, если память не изменяет…

Добавлено через 11 минут
CP1251 декодируется в CP1252 при открытии файла в менеджере, а код можно отредактировать…



0



Юзер с абсолютным слухом

709 / 489 / 195

Регистрация: 17.12.2010

Сообщений: 1,419

25.09.2015, 20:53

11

Да, оказывается, во втором файл-менеджере можно, но изначально русские буквы отображаются среднеевропейской кодировкой, (как в правой части скрина) а после сохранения изменения предстают в таком виде: дельта-диез-юникод в четырёх цифрах. А в первом файл-менеджере у меня выскакивает, как в левой части скрина.

Миниатюры

Как изменить кодировку символов с Windows-1251 на UTF-8?
 



0



11 / 10 / 3

Регистрация: 25.09.2015

Сообщений: 238

25.09.2015, 21:51

 [ТС]

12

Цитата
Сообщение от Fedor92
Посмотреть сообщение

кириллические символы отображаются крякозябрами

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



0



Fedor92

25.09.2015, 22:35


    Как изменить кодировку символов с Windows-1251 на UTF-8?

Не по теме:

Цитата
Сообщение от Майкл Скоуфилд
Посмотреть сообщение

кириллические символы отображаются нормально.

Речь шла о файлах сохранённых в кодировке windows-1251… C utf-8 проблем не возникнет…



0



В последнее время, в процессе работы, я все меньше и меньше встречаю сайты, которые находятся в некогда популярной кодировке «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 10
  • Как поменять курсор мыши на windows 11 на кастомный
  • Как поменять количество герц на мониторе windows 10
  • Как поменять кнопку пуск на windows 10 как на windows 7
  • Как поменять курсор мыши на windows 10 pro