我在我的mysql数据库中保存了一些非常好的外来字符。这是我现在使用的例如:いち外国字符在php中没有正确显示
当我尝试从数据库中回显该列时,它只显示为'??'
为什么在我试图回应外来字符时出现问号?
我在我的mysql数据库中保存了一些非常好的外来字符。这是我现在使用的例如:いち外国字符在php中没有正确显示
当我尝试从数据库中回显该列时,它只显示为'??'
为什么在我试图回应外来字符时出现问号?
在数据库中使用什么编码,以及通过header()
或HTML发送给浏览器的编码是什么?确保它们与您要输入的数据相匹配。
您应该更改数据库编码以及将PHP标头中的编码指定为UTF-8。 MySQL允许您选择默认编码,或者基于每个表或每个字段。
header('Content-Type: text/html; charset=UTF-8');
如果您保持数据库的编码和脚本的编码一致,则不应该有任何问题。
很有可能你没有设置适当的Mysql客户端的编码。
您必须发出SET NAMES <encoding>
查询,其中<encoding>
是您的HTML页面编码。
请注意,没有“外来字符”,但只有编码。
你要知道什么编码的字符,并在所有三个网络应用部分正确设置它:
为了让这些字符被支持,你必须选择
让我们继续使用Unicode/UTF-8,因为这是推荐的标准。你必须确保这些东西:
accept-charset="utf-8"
添加到<form>
元素中。CREATE DATABASE
语法和supported character sets/collations(阅读:编码)。你应该选择UTF-8/Unicode。SET NAMES UTF8
完成的。header('Content-type: text/html; charset=utf-8');
http://www.joelonsoftware.com/articles/Unicode.html – Amber 2010-06-04 23:53:32