如何使用PHP在MySQL中存储’€’符号?

How can I store the '€' symbol in MySQL using PHP?

本问题已经有最佳答案,请猛点这里访问。

我已经将php字符集设置为utf-8

1
header('Content-Type: text/html; charset=utf-8');

我已经将mysql中的currency列设置为varchar(1),使用排序规则utf8_unicode_ci

但是,PHP中的以下代码:

1
2
3
$currency = '€';
$sql ="UPDATE myTable SET currency = '$currency' WHERE user = '$user'";
mysql_query($sql);

在MySQL中生成以下字符:

1
a

我怎样才能让符号正确地存储在mysql中?


确保脚本文件,包含行的文件

1
$currency = '€';

是UTF-8编码的。您应该可以在编辑器或IDE的"另存为"对话框中选择这样的效果。

然后确保您的连接也是UTF-8编码的-默认情况下是ISO-8859-1。

连接到数据库后,对于5.0.7之前的MySQL:

1
mysql_query("SET NAMES utf8");

对于MySQL5.0.7及更高版本:


本页的"在Web上使用UTF-8"部分提供了一个良好的详细信息:http://dev.mysql.com/tech-resources/articles/4.1/unicode.html


您可以将其转换为€的HTML代码。