我从包含德国变音符号的数据库中获取数据时遇到麻烦。基本上,每当我收到包含变音符号的数据时,它都是带有问号的黑色正方形。我通过把
mysql_query ('SET NAMES utf8')
查询之前。
问题是,一旦我json_encode(...)对查询结果使用,则包含umlaut的值会得到null。我可以通过直接在浏览器中调用php文件来看到这一点。除了在编码为JSON并将其解码为JS之前替换此字符之外,还有其他解决方案吗?
json_encode(...)
null
您可能只想以某种方式在浏览器中显示文本,因此一种选择是使用来将变音符号更改为HTML实体htmlentities()。
htmlentities()
以下测试对我有用:
<?php $test = array( 'bla' => 'äöü' ); $test['bla'] = htmlentities( $test['bla'] ); echo json_encode( $test ); ?>