乱码问题分析

发布时间:2018-04-11 编辑:钰歆博客 阅读(703)

    第一种:解决HTML中中文乱码问题方法

        如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):

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

        UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

       

        

    第二种、HTML和PHP混合的页面解决方案

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

        <?php

            header("content-type:text/html;charset=utf-8");  //设置编码

        ?>

        

    第三种、纯PHP页面的中文乱码问题(数据是静态的)

        如果你的PHP页面出现了乱码,只需要在页面的开始处加入下面代码就可以了。

        <?php

            header("content-type:text/html;charset=utf-8");  //设置编码

        ?>

        

    第四种、PHP+Mysql中文乱码问题

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

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

        方法一:

            <?php

                mysql_query('SET NAMES UTF8');

                //接下来的就是查出数据或者修改,增加

            ?>

            有一点要注意:在需要做数据库操作的php程序前加的 mysql_query("set names '编码'");

            编码,一定要和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 utf8,

            这样插入或检索数据时就不会出现乱码了     

        

        方法二:

            如何你使用的MySQL版本在 4.1或更高版本,可以在链接数据库操作后,设置一个字符编码,像下面这样

            $conn=mysqli_connect("localhost","root","News");

            mysqli_set_charset($conn,"utf8");

        

        方法三:

            如果是thinkphp框架,在核心配置目录配置 连接数据库时字符集为 'DB_CHARSET'=> 'utf8', // 字符集

            //数据库配置信息

            'DB_DEPLOY_TYPE'=> 1, // 设置分布式数据库支持

            'DB_TYPE'   => 'mysql', // 数据库类型

            'DB_HOST'   => 'xxxx,xxxx', // 服务器地址

            'DB_NAME'   => 'DB_NAME', // 数据库名

            'DB_USER'   => 'root', // 用户名

            'DB_PWD'    => 'DB_PWD', // 密码

            'DB_PORT'   => 3306, // 端口

            'DB_PREFIX' => 'think_', // 数据库表前缀 

            'DB_CHARSET'=> 'utf8', // 字符集

            'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志

            'DB_RW_SEPARATE'=>true,


            //用户数据库配置

            'DB_MEMBER' => array(

            'DB_DEPLOY_TYPE'=> 1, // 设置分布式数据库支持

                    'DB_TYPE'   => 'mysql', // 数据库类型

                    'DB_HOST'   => 'xxxx,xxxx', // 服务器地址

                    'DB_NAME'   => 'DB_NAME', // 数据库名

                    'DB_USER'   => 'root', // 用户名

                    'DB_PWD'    => 'xxx', // 密码

                    'DB_PORT'   => 3306, // 端口

                    'DB_PREFIX' => 'think_', // 数据库表前缀 

                    'DB_CHARSET'=> 'utf8', // 字符集

                    'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志

                    'DB_RW_SEPARATE'=>true

            ),        

            

        如果无法定位哪个位置的写入,不是统一字符集,    

        如:页面部分乱码(如:莆田市城厢区龙桥街é),一定是编码问题

        问题的可能性:

        1.数据库内部字段编码格式不一致(把有问题的数据库表和字段都设置成utf-8)

            如果一开始建表的时候,把表的字符集设置成utf8,那么所创建的字段将默认utf8

            

        2.输出的文件编码格式不是utf-8

            Sublime Text3 导航栏 文件里有设置编码和保存编码功能

标签

还没有帐号?马上注册