PHP json_encode json_decode UTF-8

2022-08-30 12:07:42

如何将带有国际字符的 json 编码字符串保存到 databse,然后在浏览器中解析解码的字符串?

<?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> 

答案 1

json utf8 编码和解码:

json_encode($data, JSON_UNESCAPED_UNICODE)

json_decode($json, false, 512, JSON_UNESCAPED_UNICODE)

force utf8 也可能有帮助:http://pastebin.com/2XKqYU49


答案 2

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

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

  • 数据库连接

  • 数据库表

  • 您的 PHP 文件(如果您在该文件中使用特殊字符,如上面的示例所示)

  • 输出的标头content-type


推荐