Я закончил с испорченными символьными кодировками в одном из наших столбцов mysql.Фиксация кодировок
Обычно у меня есть
√ © вместо é
√∂ вместо ö
√ ≠ вместо ростовчан
и так далее ...
довольно уверен, что кто-то здесь будет знать, что произошло и как исправить.
UPDATE: На основании ответа bobince и так как я имел эти данные в файле я сделал следующее
#!/user/bin/env python
import codecs
f = codecs.open('./file.csv', 'r', 'utf-8')
f2 = codecs.open('./file-fixed.csv', 'w', 'utf-8')
for line in f:
f2.write(line.encode('macroman').decode('utf-8')),
, после чего
load data infile 'file-fixed.csv'
into table list1
fields terminated by ','
optionally enclosed by '"'
ignore 1 lines;
правильно импортированы данные.
UPDATE2: Hammerite, просто для полноты картины здесь запрошенные подробнее ...
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
The SHOW CREATE TABLE
для таблицы я импортирующей к имеет DEFAULT CHARSET=utf8
EDIT3:
Фактически с вышеуказанными настройками load
не сделал делать правильные вещи (я не мог сравниться с существующими полями utf8 и только мои загруженные данные смотрел, как будто он был загружен правильно; Я предполагаю, что из-за неправильно, но соответствие клиента, подключение и результаты Кодировки), поэтому я обновил настройки на: снова
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
загруженных данных, а затем, наконец, я получил данные загружены правильно (по сравнению с существующими данными).
Какую кодировку используете в настоящее время? Как вставлять данные? – NullUserException
Echoing NullUserException, пожалуйста, опубликуйте вывод 'SHOW CREATE TABLE TableName'.Также опубликуйте вывод 'SHOW VARIABLES LIKE 'character_set%''. – Hammerite
@Hammerite, NullUserException, спасибо за ваш вклад ... – Unreason