mysql数据库中的法语撇号char?

时间:2012-12-10 07:57:22

标签: php mysql character-encoding

我有一个mysql表,列中的某些行包含个字符。我必须将表内容作为xml回显。我正在使用此utf8_encode($row['data']),数据正在响应为Â’。我已经使用了iconv,并尝试过str_replace('’','somechar',$row['data']),但现在正在使用。

1 个答案:

答案 0 :(得分:1)

看起来您需要做的只是echo $row['data'];,数据在Windows-1252中,而您的页面标题也在Windows-1252中。没有转换 需要UTF-8。

如果您没有意识到您的数据是在Windows-1252中,并且已经在xml中设置了encoding="UTF-8",那么您需要将其设置为encoding="Windows-1252"

<小时/> 如果您想使用UTF-8,首先应该将您的连接设置为UTF-8:

mysql_set_charset( "utf8" );
// or $mysqli->set_charset( "utf8" );

在您提出任何疑问之前。

之后你需要修复你的http标题:

<?php
header( "Content-type: application/xml; charset=utf-8");

当然,不要致电utf8_decode。除非您确实知道您在做什么,否则请勿致电utf8_decodeutf8_encode。首先,这些功能适用于ISO-8859-1-&gt; UTF-8(反之亦然)转换(真正的ISO-8859-1,而不是浏览器“ISO-8859-1”,实际上只是Windows-1252)并且不是一些神奇的unicode魔杖。

如果你想采用utf-8路线,还有许多其他事情要做,但这两个可以解决你的问题。