【问题标题】:How to convert array containing umlaut characters(ääää) into json如何将包含元音变音字符(ääää)的数组转换为 json
【发布时间】:2015-12-02 12:11:43
【问题描述】:

我已经编写了这个 php 代码,用于将变音字符 (ääää) 转换为在 json 字符串中使用,但它没有返回我想要的确切结果。

代码:

mysql_set_charset("ut8");
$size = "ääää";
$d=utf8_encode($size);
echo $de= json_encode($d);

结果:

ääää

预期结果:

ääää

我怎样才能达到这个结果?

【问题讨论】:

标签: php json


【解决方案1】:

你必须通过使用 header 来设置内容类型 json 并且使用 json_encode 使用第二个参数,即。 JSON_UNESCAPED_UNICODE

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

【讨论】:

  • 虽然代码可能来自也可能不来自 mysql 数据库,但当字符串已经存储在变量中时,mysql_set_charset() 函数在这里没有任何用处。
  • 我已经测试了你的代码,utf8_encode() 不需要并且会破坏代码。应该删除标头,因为 OP 没有要求将 json 直接发送到用户浏览器(似乎他想将其存储在数据库中)。只需json_encode($size,JSON_UNESCAPED_UNICODE); 就足够了。
  • 是的,是我写错了代码
  • 删除 $d=utf8_encode($size);和 $size 要添加到 json_encode 字符串中
  • 是的,但也要从您的答案中删除 header()mysql_set_charset() 函数。那么它是正确的,切中要害,你会从我这里获得 +1 ;)
【解决方案2】:

对于将来遇到此问题的任何人来说,这是一个有用的功能: php function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2022-10-30
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多