php - php json_encode 中德语变音符号的问题

标签 php json character-encoding

我在处理包含德语变音符号的数据库中的数据时遇到问题。基本上,每当我收到包含元音变音的数据时,它都是一个带有问号的黑色方 block 。我通过放置

解决了这个问题
mysql_query ('SET NAMES utf8')

在查询之前。

问题是,只要我对查询结果使用 json_encode(...),包含变音符号的值就会变为 null。我可以通过直接在浏览器中调用 php 文件来看到这一点。除了在编码为 JSON 并在 JS 中解码之前替换这些字符之外,还有其他解决方案吗?

最佳答案

查看 here 中提到的这个非常优雅的解决方案:

json_encode( $json_full, JSON_UNESCAPED_UNICODE );

如果问题不在您的代码中的其他任何地方,这应该可以解决它。

编辑:元音变音问题可能由多种来源引起,例如 HTML 文档的字符集、数据库格式或您的字符串运行的一些先前的 php 函数(您绝对应该查看 multibyte functions 时元音变音有问题)。

这些问题往往非常烦人,因为在大多数情况下它们很难跟踪(尽管这不像几年前那么糟糕)。上面的函数修复了 - 正如所要求的那样 - json_encode 的元音变音问题......但问题很可能是由应用程序的不同部分而不是这个特定函数引起的。

关于php - php json_encode 中德语变音符号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602075/

相关文章:

php - 仅以所需格式打印 session 数组中所需的数据和

java - java 上的 json(包含很少的对象)到 TreeMap

javascript - 在 Javascript 中将编码从 UTF-8 更改为 ISO-8859-2

php - #1093 - 您不能在 FROM 子句中指定要更新的目标表 'windUpdates'

PHP - 提交数据枚举组合按钮

javascript - JSON/Javascript - 如何从文本文件检索数据并将其存储到数组中

javascript - 如何在多个Jquery Get函数中等待

javascript - 将jquery文本替换为TM字符实体,用jquery

php - 字符集 UTF-8 和 php header() 不工作

php - 如何检查 PHP session 是否为空?