Php 如何将包含umlaut字符(ä;ä;ä;ä;ä;)的数组转换为json

Php 如何将包含umlaut字符(ä;ä;ä;ä;ä;)的数组转换为json,php,json,Php,Json,我编写了这段php代码,用于将umlaut字符(ääää)转换为json字符串,但它没有返回我想要的确切结果 代码: 结果: ääää 预期结果: ääää 如何实现此结果?您必须通过使用header为其设置内容类型json,并使用json\u encode使用第二个参数,即json\u UNESCAPED\u UNICODE header('Content-Type: application/json; Charset=UTF-8'); mysql_

我编写了这段php代码,用于将umlaut字符(
ääää
)转换为json字符串,但它没有返回我想要的确切结果

代码:

结果:

ääää
预期结果:

ääää

如何实现此结果?

您必须通过使用header为其设置内容类型json,并使用json\u encode使用第二个参数,即json\u UNESCAPED\u UNICODE

    header('Content-Type: application/json; Charset=UTF-8');
    mysql_set_charset("ut8");
    $size = "ääää";
    echo $de= json_encode($size,JSON_UNESCAPED_UNICODE);

以下是一个有用的函数,供将来偶然遇到此问题的人使用:

您是否尝试过不使用utf8编码的情况?如果您的文件保存为UTF8,则不需要使用该函数。可能重复-旁注:尽管代码可能来自或不来自mysql数据库,但当字符串已存储在变量中时,
mysql\u set\u charset()
函数在这里没有任何用处。我已经测试了您的代码,
UTF8\u encode()
是不需要的,它将破坏代码。应该删除标题,因为OP没有要求将json直接发送到用户浏览器(似乎他想将其存储在数据库中)。只需
json\u编码($size,json\u UNESCAPED\u UNICODE)
就足够了。是的,这是错误编写的,我编辑了代码,在删除$d=utf8\u encode($size)后它在系统上工作;要添加到json_encode stringyes中的$size,但也要从您的答案中删除
header()
mysql_set_charset()
函数。那么它是正确的,切中要害,您将从我这里获得+1;)
    header('Content-Type: application/json; Charset=UTF-8');
    mysql_set_charset("ut8");
    $size = "ääää";
    echo $de= json_encode($size,JSON_UNESCAPED_UNICODE);