Преобразовать latin1 в UTF8

У меня есть БД – с табличными статьями.

Я хочу преобразовать заголовок и поле содержимого в utf8 сейчас – все данные выглядят так: פורטל רעל × ×¤×ª×— רשמית! Я хочу, чтобы он стал нормальным иврите.

благодаря

Вы можете сделать mysqldump из этой базы данных. Затем загрузите что-то вроде Notepad ++, откройте файл дампа, преобразуйте его в UTF8, а затем замените в файле все кодировки на utf-8, включая первый оператор SET NAMES.

Если вы делаете дамп в файл через phpMyAdmin (с настройками по умолчанию), используйте кодировку выходного файла ISO-8859-1 вместо UTF-8, как вы можете видеть по умолчанию.

если вам нужно преобразовать всю базу данных, вы можете поддержать ее как файл databaseback.sql а затем сформировать свою командную строку iconv -f latain -t utf-8 < databaseback.sql > databaseback.utf8.sql

вы можете использовать http://www.php.net/manual/en/function.iconv.php
преобразовать каждую строку в php, если у вас нет доступа к командной строке

и, наконец, не забудьте преобразовать сортировку каждого поля в phpmyadmin, тогда вы можете повторно удалить utf8

Обновить

если вы не получили iconv is not recognized , это означает, что у вас нет установленного iconv

гораздо более простым решением является: Перенос данных MySQL в Unicode

http://daveyshafik.com/archives/166-migrating-mysql-data-to-unicode.html

Следующая функция MySQL вернет правильную строку utf8 после двойного кодирования:

CONVERT (CAST (CONVERT (поле USING latin1) AS BINARY) ИСПОЛЬЗОВАНИЕ utf8) Его можно использовать с инструкцией UPDATE для исправления полей:

UPDATE tablename Поле SET = CONVERT (CAST (CONVERT (поле USING latin1) AS BINARY) ИСПОЛЬЗОВАНИЕ utf8);

Вы можете написать небольшой скрипт php, который выполняет преобразование. См. http://www.php.net/manual/en/function.mb-detect-encoding.php и http://php.net/manual/en/function.mb-convert-encoding.php Вот как я сделал это.

И не забудьте использовать строгий режим! http://www.php.net/manual/en/function.mb-detect-encoding.php#102510

В псевдокоде это будет sth. как это:

 str = getDataAsString() if(!isUTF8(str)) { str = convert2UTF8(str) } saveStr2DB() 

пытаться

 ALTER TABLE `tablename` CHANGE `field_name` `field_name` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL