Вставка шведских символов в таблицы открытых тележек - PullRequest
0 голосов
/ 24 сентября 2011

Я только что создал скрипт для импорта данного файла (csv) в opencart. Удаленный сервер передает данные как iso-8859-1, а opencart по умолчанию использует сборку utf8_bin.

Моя проблема в том, что скрипт, в котором по умолчанию эхо-операторы показывают желаемый результат без проблем или странных символов, не передает данные в базу данных, не путая специальные шведские символы.

В качестве примера можно привести слово: Värmepump Это определенно не должно выглядеть так.

Есть идеи, что именно может потерпеть неудачу? Я уже пытался добавить запрос SET NAMES 'utf8', но это не помогло.

1 Ответ

1 голос
/ 24 сентября 2011

Что ж, если данные в кодировке utf8, я думаю, что есть проблема в базе данных или в подключении к базе данных. Вот несколько советов по отладке для вас.

Наборы / сопоставления для базы данных и таблицы MySQL (из командной строки)

mysql -u [youruser] [yourdatabase] -p
mysql> SHOW CREATE DATABASE [yourdatabase];
mysql> SHOW CREATE TABLE [yourtable];

Все должно быть utf8.

Соединение с базой данных MySQL (из скрипта PHP)

$result = mysql_query("SHOW VARIABLES LIKE '%character%'");

while ($row = mysql_fetch_assoc($result))
{
    error_log(print_r($row, true));
}

Здесь также должно быть все utf8.

РЕДАКТИРОВАТЬ: Ваша строка фактически кодируется дважды. Запуск простой

echo utf8_decode(utf8_decode('Värmepump'))."\n";

в PHP-файле с кодировкой ANSI выводит ожидаемый «Värmepump». Убедитесь, что вы кодируете свои данные только один раз.

...