字符é
在Chrome中显示为问号。我正在使用PHP从MySQL获取内容以输出到HTML。我尝试使用mb_detect_encoding()
来确定内容的编码,有些是ASCII,有些是UTF-8。为什么他们有不同的编码? MySQL是否使它们不同,或者PHP是否正在这样做?
包含é
的内容编码为UTF-8。但是,如果我在内容上使用utf8_encode()
,则字符会正确显示。如果它已经是UTF-8,为什么使用utf8_encode()
使它正确显示?
答案 0 :(得分:0)
您必须将数据库的连接定义为utf8:
// Setup your connection
$connection = mysql_connect('localhost', 'user', 'pw');
mysql_select_db('yourdb', $connection);
mysql_query("SET NAMES 'utf8'", $connection);
// now you get utf-8 encoded stuff
$query = sprintf('SELECT name FROM place where id = 1');
$result = mysql_query($query, $connection);
$result = mysql_fetch_assoc($result);
答案 1 :(得分:0)
您可以使用htmlentities()
PHP函数转义字符串,以便将字符更改为各自的HTML实体,例如è更改为è
,无论您是否指定编码类型。< / p>