一尘不染

php json_encode中的德国变音符的问题

json

我从包含德国变音符号的数据库中获取数据时遇到麻烦。基本上,每当我收到包含变音符号的数据时,它都是带有问号的黑色正方形。我通过把

mysql_query ('SET NAMES utf8')

查询之前。

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


阅读 235

收藏
2020-07-27

共1个答案

一尘不染

您可能只想以某种方式在浏览器中显示文本,因此一种选择是使用来将变音符号更改为HTML实体htmlentities()

以下测试对我有用:

<?php
    $test = array( 'bla' => 'äöü' );
    $test['bla'] = htmlentities( $test['bla'] );

    echo json_encode( $test );
?>
2020-07-27