PHP json_encode json_decode UTF-8?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

如何将包含国际字符的json编码字符串保存到数据库中,然后在浏览器中解析解码后的字符串?

<?php           
    $string = "très agréable";  
    // to the database 
    $j_encoded = json_encode(utf8_encode($string)); 
    // get from Database 
    $j_decoded = json_decode($j_encoded); 
?>    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <?= $j_decoded ?>
</html> 
提问于
用户回答回答于

这是一个编码问题。它看起来在某些时候,数据被表示为ISO-8859-1。

你的流程的每个部分都需要使用UTF-8编码。

  • 数据库连接
  • 数据库表
  • 你的PHP文件(如果你在上面的例子中使用了该文件中的特殊字符)
  • content-type你输出的标题
用户回答回答于

JSON UTF 8编码和解码:

json_encode($data, JSON_UNESCAPED_UNICODE)

json_decode($json, false, 512, JSON_UNESCAPED_UNICODE)

扫码关注云+社区