php mb_substr()函数导致json_encode()失败

时间:2013-09-19 12:40:18

标签: php json multibyte

<?php
  $original = "ÄäÖö";
  $shortened = mb_substr( $original, 0, 1 );
  echo json_encode( $original );// OK
  echo json_encode( $shortened );// PHP Warning:  json_encode(): Invalid UTF-8 sequence in argument...
?>

似乎mb_substr错误的多字节字符串!我在这里遗漏了什么或者以某种方式滥用了mb_substr吗?

1 个答案:

答案 0 :(得分:1)

尝试将默认内部编码设置为UTF-8。

mb_internal_encoding("UTF-8");

它对我很有用。

输出:

"\u00c4\u00e4\u00d6\u00f6""\u00c4"