php - 将瑞典语字符插入 opencart 表

标签 php mysql character-encoding

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

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

示例是这个词:Vå¤rmepump 这绝对不应该是这样的。

你知道什么可能会失败吗?我已经尝试添加 SET NAMES 'utf8' 查询,但没有帮助。

最佳答案

好吧,如果数据是 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”。确保您只对数据进行一次编码。

关于php - 将瑞典语字符插入 opencart 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539655/

相关文章:

mysql - #1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册

php - 当一个表包含多行时,从多个表中获取数据

c++ - 使用 '\uxxxx' 格式定义的字符显示错误的字符

php - SQL查询,什么是 `SELECT * FROM !.tables WHERE id = !`

php - Phalcon - 如果不存在则模块异常

php - PDO 从表中提取一列到一维数组中

java - RestTemplate UTF-8 编码与交换不起作用

php - 在后台从 Cocoa 向 PHP 脚本发送数据

mysql - 仅当表不存在时如何执行 DDL?

java - 如何在jsp中打印utf-8?