发布
社区首页 >问答首页 >俄语字符的json_encode错误

俄语字符的json_encode错误
EN

Stack Overflow用户
提问于 2016-11-25 07:16:03
回答 1查看 1.1K关注 0票数 0

我对json_encode的输出有问题。我需要输出俄罗斯文字。

在我的数据库表中只有俄文字符。在输出中,我只得到了"????????"问号替换了俄语字符。我读过许多类似的问题,但都没有一个真正的解决办法。我试过以下几种方法,但没有一种方法有帮助。

下面是我的php代码。

  1. 添加了头('Content-type: application/json;charset=utf-8‘);
  2. json_encode($albums, JSON_UNESCAPED_UNICODE);
  3. mb_convert_encoding($str, 'UTF-8', 'auto'); json_encode($albums,JSON_UNESCAPED_UNICODE);
代码语言:javascript
代码运行次数:0
复制
<?php
    $host ="localhost";
    $user ="misollar_user";
    $pass="12345";
    $db="misollar_db";
    header ('Content-type: application/json; charset=utf-8');
    $con = mysqli_connect($host,$user,$pass,$db);
    $query = "select * from albums;";
    $result = mysqli_query($con, $query);
    $albums = array();
    while ($row = mysqli_fetch_array($result)){
        array_push($albums,array('id'=>$row[0], 'name'=>$row[1], 'songs_count'=>$row[2]));
    }
    mysqli_close($con);
    echo json_encode($albums, JSON_UNESCAPED_UNICODE);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-25 07:40:33

在从mysql检索结果之前,需要设置UTF8

在从albums表检索结果之前,在查询下面触发:

代码语言:javascript
代码运行次数:0
复制
mysqli_query($con, 'SET names UTF8');

在此之后,您可以获取您的专辑结果:

代码语言:javascript
代码运行次数:0
复制
$query = "select * from albums;";
$result = mysqli_query($con, $query);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40799566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档