显示 而不是£

nea*_*d93 12 php mysql encoding character-encoding

当从mysql数据库中提取数据时,符号 显示而不是£

有问题的字段整理为utf8_general_ci

我也有<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />页面的head标签

有什么想法吗?

Mic*_*ter 30

mysql_query("SET NAMES 'UTF8'");在对数据库执行任何查询之前使用.


vbe*_*nce 6

正如其他人所说,你应该SET NAMES 'UTF8'识别它不是默认的字符集.也可能将错误的字符插入数据库中.

检查源是否确实是UTF-8格式,并导入为UTF-8.(您可以在使用上述查询设置NAMES后重新导入数据).

如果通过HTML表单输入它们,请检查包含数据输入表单的HTML页面是否meta也具有正确的元素.

还要检查HTTP服务器发送给您的标头(您可以使用Firebug扩展程序执行此操作).您可以在包含以下内容的.htaccess文件中为服务器设置默认字符集:

AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您使用的是PHP,那么设置字符编码的推荐方法是mysql_set_charset().

我最初的MySQL设置是:

<?php
$db = mysql_connect( ... );
mysql_set_charset( 'utf8', $db );

header('Content-Type: text/html; charset=UTF-8');
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

这样,我从来没有遇到编码问题.