我遇到了来自包含德国变音符的数据库中的数据的麻烦。基本上,每当我收到包含变音符号的数据时,它都是带有问号的黑色正方形。我解决了这个问题

mysql_query ('SET NAMES utf8')

查询之前。

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

最佳答案

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

以下测试对我有用:

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

    echo json_encode( $test );
?>

08-07 19:28