Php 如何将包含umlaut字符(ä;ä;ä;ä;ä;)的数组转换为json
我编写了这段php代码,用于将umlaut字符(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_
ääää
)转换为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);