我在处理包含德语变音符号的数据库中的数据时遇到问题。基本上,每当我收到包含元音变音的数据时,它都是一个带有问号的黑色方 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/