当我在 mySQL 表中插入名称时遇到编码问题,其中包含特殊字符,如“ö”、“ä”等。例如,单词“Öl”变为“öl”。
我试图将名称写入文本文件,然后它们会正确显示。
我尝试使用 SQL 语句在 phpMyAdmin 中插入名称,效果也很好。
现在我在mysql_query('SET NAMES utf8;');
插入查询之前的设置中找到了解决方案。这是应该怎么做,还是有更好的方法?
当我在 mySQL 表中插入名称时遇到编码问题,其中包含特殊字符,如“ö”、“ä”等。例如,单词“Öl”变为“öl”。
我试图将名称写入文本文件,然后它们会正确显示。
我尝试使用 SQL 语句在 phpMyAdmin 中插入名称,效果也很好。
现在我在mysql_query('SET NAMES utf8;');
插入查询之前的设置中找到了解决方案。这是应该怎么做,还是有更好的方法?
是的,运行 SET NAMES utf8;需要让 MySQL 在发送数据时知道客户端连接正在使用 ut8。您现在可以在 PDO 连接中定义它(如果您使用 PDO 连接到 MySQL)。
如果运行的 PHP 版本早于 5.3.6,则可以使用以下代码:
$pdo = new PDO(
'mysql:host=mysql.example.com;dbname=example_db',
"username",
"password",
array(PDO::MYSQL\_ATTR\_INIT\_COMMAND => "SET NAMES utf8"));
否则使用以下内容:
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');