zoukankan      html  css  js  c++  java
  • PHP解决中文乱码问题

    1.PHP解决中文乱码问题

    很多情况下,程序中出现中文输出时,页面会显示乱码

    一般地原因有两种

    1. 编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现乱码
    2. 文件被以错误的编码方式打开并保存,比如GBK编码的文件,以UTF-8编码格式打开,再以UTF-8格式保存,就会出现乱码问题

    将乱码情况分类并做出具有针对性的解决方案

    1.1 解决HTML中页面中文乱码问题

    如果你的HTML文本文件出现了筹码问题,那么你可以在head标签里面加入UTF-8编码(国际化编码):UTF-8是没有国家的编码,也就是独立一种语言,任何语言都可以使用的。

    <meta http-equiv="content-Type" content="text/html;charset=utf-8" />

    1.2 HTML和PHP混合的页面解决方案

    如果在HTML和PHP混编,除了按照第一个方法所说的操作之外,还需要在PHP文件的了上面加入这句代码:

    <?php
    
           header("content-type:text/html;charset=utf-8");
    
    ?>

    1.3 纯PHP页面的中文乱码问题(数据是静态的)

    如果PHP页面出现筹码,只需要在页面的开始处加入下面代码

    <?php
    
           header("contnet-type:text/html;charset=utf-8");
    
    ?>

    1.4 PHP+MySQL中文乱码问题

    这个除了按第三种所说的操作之外,还要在数据查询/修改/增加之前加入数据库编码。

    而且需要注意的是,这里的UTF8和之前的不一样, 中间是没有横线的

    <?php
    
           mysql_query('SET NAMES UTF8');
    
    ?>

    如果数据库版本大于4.1,可以在链接数据库操作后,设置一个字符编码,如下

    $conn = mysqli_connect('localhost','root','root','db_name');
    
    mysqli_set_charset($conn,'utf8');

    UTF-8编码只是其中一种编码,如果不想使用utf-8编码,也可以使用其他编码,这需要使用编码转换

    有一点需要注意,在需要做数据库操作的php程序前加的

    mysql_query("set names encoding");

    编码,一定要和php编码一致,如果php编码是gb2312,那mysql编码就是gb2312,如果php页面编码是utf-8,mysql编码就是utf-8。这样保持数据与页面编码一致性,插入或检索数据时较少会出现筹码情况

  • 相关阅读:
    学会读懂 MySql 的慢查询日志
    Azure Mobile App
    ZOJ 3810 A Volcanic Island (2014年牡丹江赛区网络赛B题)
    学习日记之观察者模式
    Linux C高级编程——网络编程基础(1)
    Atitit.ati&#160;&#160;str&#160;&#160;字符串增强api
    ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
    TintTo和TintBy
    cc.Sprite
    手机网页一行中文字数上限
  • 原文地址:https://www.cnblogs.com/anyux/p/9189732.html
Copyright © 2011-2022 走看看