• 中文乱码处理


    01 输出中文乱码

    02json_encode()转义成json入库,默认把中文转成unicode

    03

    二次开发的php文件或者html文件中.中文编码不是utf-8的,选择txt文本或者editplus打开,另存为utf-8.然后修改代码中设置的编码为utf-8.

    编译的时候,先查看文本的编码.然后按照编码格式.来显示或执行

    如果文本的编码为gb2312或者gbk.使用phpstrom打开有中文乱码.需要看右下角.是否以utf-8格式读取并显示

     ================日志写入数组,json_encode会把中文转成unicode,需要处理


    function json_encode_ex($value)
    {
    if (version_compare(PHP_VERSION,'5.4.0','<'))
    {
      $str = json_encode($value);
      $str = preg_replace_callback(
      "#\u([0-9a-f]{4})#i",
      function($matchs)
      {
        return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
        },
      $str
    );
        return $str;
    }
    else
      {
        return json_encode($value, JSON_UNESCAPED_UNICODE);
      }
    }

    =========== mysql 中文乱码 cmd

    查看编码格式是否为gbk. cmd面板默认为gbk格式显示.

    show variables like '%char%';   //查看变量  模糊匹配 mysql中所有变量设置

    set names gbk;   //设置客户端字符集 ,以gbk读取数据.返回给cmd面板

    如果没有设置客户端编码为gbk. 搜索中文匹配是不会有结果的

    ============

    header("Content-type:text/html;charset=utf-8");

    echo '<pre>';

    echo '<meta http-equiv="Content-type" content="text/html:charset=utf-8">';

    var_dump($data);

    ===========json数据中文直接入库,无需转成unicode

    function json_encode_ex($value)
    {
    if (version_compare(PHP_VERSION,'5.4.0','<'))  
    {
    $str = json_encode($value);
    $str = preg_replace_callback(
      "#\u([0-9a-f]{4})#i",
    function($matchs)
    {
      return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
    },
      $str
    );
      return $str;
    }
    else
    {
        return json_encode($value, JSON_UNESCAPED_UNICODE);
    }
    }

  • 相关阅读:
    2017-2018-1 20155316 《信息安全系统设计基础》第4周学习总结
    20145205 java语言实现数据结构实验一
    20145205 实验一 Java开发环境的熟悉
    20145205 《Java程序设计》第6周学习总结
    #20145205 《Java程序设计》第5周学习总结
    #20145205 《Java程序设计》第4周学习总结
    #20145205 《Java程序设计》第3周学习总结
    # 20145205《Java程序设计》第2周学习总结
    # 20145205 《Java程序设计》第1周学习总结
    问卷调查
  • 原文地址:https://www.cnblogs.com/bj-tony/p/5558480.html
Copyright © 2020-2023  润新知