1

我在 facebook 画布中遇到特殊字符问题。

我正在检索尚未安装该应用程序的用户朋友并显示它们。但是,当我显示它们时,特殊字符看起来好像它们的编码不同。

例如,á 显示为 á,é 显示为 é 等等。

我尝试了一些没有用的东西:

<? 
$search=array('Ã', 'á', 'é','í','ó','ú','ñ');
$replace=array('&Aacute;', '&aacute;','&eacute;','&iacute;','&oacute;','&uacute;','&nacute;',);

echo str_replace($search,$replace, $friend_name) ?>

<? echo htmlentities($friend_name) ?>

更多信息:我正在使用 facebook 的 php sdk,并设置 mete 标签:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

谢谢

编辑:应用 utf8_decode() 并解决了问题。没有这个功能有没有办法解决问题?

4

2 回答 2

1

闻起来像字符编码问题(UTF、cp1252 等),而不是转义问题 ( \htmlspecialchars)。检查您的源和目标编码;他们可能不匹配。

顺便提一下,PHP 的默认内部编码从 5.4 版本开始更改为 UTF-8,因此您可能还会遇到版本不匹配导致的错误。

于 2012-05-05T23:31:29.303 回答
0

您应该对该文档进行 UTF-8 编码。这取决于您使用它编码方式的编辑器。在记事本++ 中有一个编码选项卡,您应该使用不带BOM 的UTF-8。这解决了我的 facebook 问题。

即使您设置了元标记还不够,您应该对文档进行 UTF-8 编码。如果你这样做,它将使你不必编码/解码大多数类似的东西。

于 2013-06-18T07:39:53.280 回答