我有一个mysql表,列中的某些行包含’
个字符。我必须将表内容作为xml回显。我正在使用此utf8_encode($row['data'])
,数据正在响应为Â’
。我已经使用了iconv,并尝试过str_replace('’','somechar',$row['data'])
,但现在正在使用。
答案 0 :(得分:1)
看起来您需要做的只是echo $row['data'];
,数据在Windows-1252中,而您的页面标题也在Windows-1252中。没有转换
需要UTF-8。
如果您没有意识到您的数据是在Windows-1252中,并且已经在xml中设置了encoding="UTF-8"
,那么您需要将其设置为encoding="Windows-1252"
。
mysql_set_charset( "utf8" );
// or $mysqli->set_charset( "utf8" );
在您提出任何疑问之前。
之后你需要修复你的http标题:
<?php
header( "Content-type: application/xml; charset=utf-8");
当然,不要致电utf8_decode
。除非您确实知道您在做什么,否则请勿致电utf8_decode
或utf8_encode
。首先,这些功能适用于ISO-8859-1-&gt; UTF-8(反之亦然)转换(真正的ISO-8859-1,而不是浏览器“ISO-8859-1”,实际上只是Windows-1252)并且不是一些神奇的unicode魔杖。
如果你想采用utf-8路线,还有许多其他事情要做,但这两个可以解决你的问题。