zoukankan      html  css  js  c++  java
  • PHP+mysql乱码问题

     

    先讲下两个字符集的区别:

    gb2312是标准中文字符集。

    UTF-8 是 UNICODE 的一种变长字符编码,即 RFC 3629,可以解决多种语言文本显示问题,从而实现应用国际化和本地化。 UTF-8 是字节顺序无关的,它的字节顺序在所有系统中都是一样的,排序更加容易。因此 UTF-8 具有更高的性能。

    不过如果是纯英文的话,用什么都可以,用GB2312也没问题。

    再分析下出现乱码的原因

    mysql+php产生乱码原因:
    1. mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
    2. MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
    3. MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
    4. 用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
    5. 如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
    6. PHP页面字符集不正确.
    7. PHP连接MYSQL数据库语句指定的编码不正确.


    最后讲 根治 的处方:
    UTF8来举例

    1、 保证页面的编码
    如果是html 那么别忘了在 文件开头写上

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    如果是 php那么 记得在文件最上方写上

    lzy © 2008, View php source
    1. header("Content-type: text/html;charset=utf-8");
    Parsed in 0.018 seconds

    保证文件的编码必须是 UTF-8
    解决方法 (1)把你的文件用记事本打开 ,选文件另存为,在文件名的下面有个编码  看看字符集是不是UTF-8 如果不是请修改

    2、 保证数据库是UTF8
    在添加表的时候  需要设置编码为 UTF8
    如果已经添加了 那么可以
    在PHPMYADMIN 中查看表结构  的‘整理’属性上 是否为 utf8_general_ci
    如果不是 请修改

    lzy © 2008, View php source
    1.  
    2. ALTER TABLE 'gbook' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
    3.  
    Parsed in 0.024 seconds

    数据库和字段 的编码同理:

    lzy © 2008, View php source
    1.  
    2. ALTER DATABASE 'testdata' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
    3. ALTER TABLE ' testdata' CHANGE 'test' 'test' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin
    Parsed in 0.049 seconds

    3、 PHP在连接数据库的时候加上一句:set names utf8

    lzy © 2008, View php source
    1.  
    2. mysql_connect('localhost','user','password');
    3. mysql_select_db('mydb');
    4. mysql_query("set names utf8;");//**设置字符集***
    5.  
    Parsed in 0.046 seconds

    这样就做到万无一失了,如果还有什么问题 大家可以给我留言 我会及时回复的

  • 相关阅读:
    DLL文件是什么?
    regsvr32的作用是什么?
    win10 解决.net framework 3.5 (安装报错 0x80240438)
    git 常用命令
    Wine使用初体验
    Windows 桌面快捷方式图标变白的问题
    WSL使用初体验/WIN10下安装ubuntu20.04
    Windows 重新安装Microsoft Store/用户无权进入WindowsApps文件夹
    linux命令
    linux命令
  • 原文地址:https://www.cnblogs.com/jishu/p/1940134.html
Copyright © 2011-2022 走看看