Как исправить неверные закодированные символы в столбце с кодировкой latin1

У меня есть таблица latin1, которая долгое время была заполнена разными закодированными данными, поэтому она содержит много неработающих символов. Я пытался это исправить и Как для обнаружения символов UTF-8 в столбце с кодировкой Latin1 - MySQL будет очень полезен, особенно следующий код

SELECT CONVERT(CONVERT(name USING BINARY) USING latin1) AS latin1, CONVERT(CONVERT(name USING BINARY) USING utf8) AS utf8 FROM users WHERE CONVERT(name USING BINARY) RLIKE CONCAT('[', UNHEX('80'), '-', UNHEX('FF'), ']')

но это не решает всех проблем. Символ ä, отображаемый как «Ã¤», преобразуется обратно в ä с помощью этой команды, но у меня также есть некоторые символы ä, отображаемые как «Â„», поэтому, похоже, использовался другой формат кодирования, но я понятия не имею, какой из них было так, что я мог вернуть его. Я пробовал использовать доступные кодировки на сервере mysql, но без должного результата. Кто-нибудь сталкивался с этой проблемой раньше и может указать мне правильный набор символов?


person Clemens Valiente    schedule 31.10.2012    source источник
comment
Имейте в виду, что то, что символ отображается как „, не означает, что он именно так и хранится: между базой данных и носителем вывода могло произойти нежелательное преобразование. Лучший способ убедиться, что данные хранятся с использованием правильной кодировки, — получить их шестнадцатеричное представление с помощью HEX() (и сравнить с тем, что ожидается для данных).   -  person eggyal    schedule 31.10.2012