Вопросы вместо русских букв

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Например так: http://forum.bgbilling.ru/viewtopic.php?f=22&t=4516 Происходит так из-за неуказания кодировки БД пр…»)
 
Строка 31: Строка 31:
Новые данные будут вноситься корректно.
Новые данные будут вноситься корректно.
 +
 +
Лучше делать так
 +
<source lang="sql">
 +
ALTER TABLE <имя таблицы> CONVERT TO CHARACTER SET utf8
 +
</source>

Текущая версия на 00:28, 19 марта 2019

Например так: http://forum.bgbilling.ru/viewtopic.php?f=22&t=4516 Происходит так из-за неуказания кодировки БД при её создании. Хотя в стандартном скрипте создания БД кодировка есть.

Чтобы узнать текущую кодировку БД выполните запрос:

SHOW CREATE DATABASE bgbilling

Должно быть примерно так:

CREATE DATABASE `bgbilling_test` /*!40100 DEFAULT CHARACTER SET cp1251 */

При некорректно настроенной базе кодировка по-умолчанию может быть latin1, тогда с этой кодировкой создаются все таблицы и соответственно столбцы в них. При возможности удалите БД, и создайте её заново с верной кодировкой. Это проще всего.

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

ALTER DATABASE bgbilling DEFAULT CHARACTER SET cp1251

Теперь всё новое будет создаваться правильно.

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

Либо править кодировку таблиц и столбцов.

ALTER TABLE <имя таблицы> DEFAULT CHARACTER SET = Cp1251
ALTER TABLE <имя таблицы> MODIFY <имя колонки> DEFAULT CHARACTER SET = Cp1251;

Новые данные будут вноситься корректно.

Лучше делать так

ALTER TABLE <имя таблицы> CONVERT TO CHARACTER SET utf8
Личные инструменты