LINUX.ORG.RU

mysql кодировка

 


0

1

Таблица в базе хранится в UTF-8 Но сам текст закодирован win 1252

Соответственно всякие вызовы вроде ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

ни к чему не приведут так как таблица и так в кодировке utf8

Но буковки представлены кодами win1252 И что делать?


Я пробовал делать экспорт таблиц с указанием при экспорте win1252

Почти то

Но при этом пропадают некоторые символы Например с отображается как �?

При этом на самом сайте при работе не видно никаких отклонений или не правильно отображающихся символов

mirek ()
Последнее исправление: mirek (всего исправлений: 1)

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

Miguel ★★★★★ ()
Ответ на: комментарий от Miguel

Ну вот тут есть вариант с написанием доп. утилиты https://habr.com/ru/post/137061/

А проще нельзя это решить ? При экспорте теряются всего несколько символов

Может можно чем-то перекодировать sql файл ?

Терминальный iconv я пробовал Он также как и команды SQL ничего не меняет

mirek ()