将瑞典字符插入opencart表

时间:2011-09-24 14:33:48

标签: php mysql character-encoding

我刚刚创建了一个脚本,用于将给定文件(csv)导入opencart。远程服务器以iso-8859-1传输数据,opencart默认使用utf8_bin collaction。

我的问题是,脚本(其中默认的echo语句显示没有问题或奇怪字符的所需输出)不会将数据提交到数据库而不会弄乱特殊的瑞典字符。

我的例子是:Värmepump 这肯定不应该是那样的。

知道究竟会失败的是什么?我已经尝试添加SET NAMES'utf8'查询,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

好吧,如果数据是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";

在ANSI编码的PHP文件中输出预期的“Värmepump”。确保只对数据进行一次编码。