1

当我发送这个完美的方形字符时:

25²

并使用我得到的 utf8_decode 在另一个页面中检索它(如预期的那样):

25²

现在我想用平方根做同样的事情。当我发送这个平方根时:

√225

并使用 utf8_decode 检索(_$GET)它,就像我得到之前一样:

?255

注意:我更喜欢在检索值时解决这个问题的方法(如 â^š225),而不是强制我更改它的初始表示的方法。

编辑:我以为我在使用 mysql 但我不是。抱歉误导。这是我用来检索值的脚本:

if (isset($_GET['json'])){  
  $json = urldecode($_GET['json']);
  $roots = json_decode($json, true);
  $arrList = utf8_decode(implode(",,,", $roots['nameList']));
  print_r($arrList)
}
4

2 回答 2

1

utf8_decode函数将字符串从 UTF-8 转换为 latin1。平方根符号在 latin1 中不可用,因此utf8_decode用问号代替它。² 不会发生这种情况,因为它确实存在于 latin1 的 0xB2 位置。(您可以在 Wikipedia的 latin1 页面中查看哪些字符可用)

一个可能的解决方案是删除对的调用utf8_decode并将文本保留为 UTF-8,但是您必须确保其余代码可以处理 UTF-8。

于 2012-10-07T15:29:24.573 回答
0

ISO-8859-1 中不包含平方根字符。所以它不能转换,这会导致一个问号。如果你想使用这样的特殊字符,最好坚持使用 UTF-8

于 2012-10-07T15:31:15.823 回答