精华内容
下载资源
问答
  • 用django连接mysql之后,发现中文乱码 解决: 在settings.py下DATABASES添加: ‘default-character-set’: ‘utf8’, 然后打开mysql配置文件/etc/mysql/my.cnf,添加如下代码:(一定要注意下划线和横杠的区别...

    用django连接mysql之后,发现中文乱码
    解决:
    在settings.py下DATABASES添加:
    ‘default-character-set’: ‘utf8’,
    然后打开mysql配置文件/etc/mysql/my.cnf,添加如下代码:(一定要注意下划线和横杠的区别)

    [client]
    port = 3306
    socket = /var/run/mysqld/mysqld.sock

    default_character_set=utf8(此处为添加部分)

    [mysqld]
    #

    * Basic Settings

    #
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    port = 3306
    basedir = /usr
    datadir = /var/lib/mysql
    tmpdir = /tmp
    lc-messages-dir = /usr/share/mysql

    character-set-server=utf8(此处为添加部分) init_connect=’SET NAMES
    utf8’(此处为添加部分)

    2.然后重启mysql。

    /etc/init.d/mysql restart

    3.然后进入数据库中。
    额外学习:

    查看数据库编码配置:

    show variables like ‘character%’;

    查看test数据库的编码格式:
    mysql> show create database test;
    查看yjdb表的编码格式:
    mysql> show create table yjdb;
    也可在mysql命令行输入SET character_set_client=’utf8’;类似命令改变编码

    展开全文
  • 最近使用MySQL Server 5.0的时候会遇到乱码问题;所以在网上找了一些资料,再加上自己的亲身经历写下这个文章。 MySQL会出现中文乱码的原因几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定...

    最近使用MySQL Server 5.0的时候会遇到乱码问题;所以在网上找了一些资料,再加上自己的亲身经历写下这个文章。

    MySQL会出现中文乱码的原因几点:
    1.server本身设定问题,例如还停留在latin1
    2.table的语系设定问题(包含character与collation)
    3.客户端程式(例如php)的连线语系设定问题

    建议使用utf8,兼容世界所有字符。

    当遇到乱码问题:

    首先,我们要先查看MySQL默认的编码格式代码如下:

    mysql> show variables like '%character_set%';
    +--------------------------+---------------+
    | Variable_name | Value |
    +--------------------------+---------------+
    | character_set_client | gbk |
    | character_set_connection | gbk |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | gbk |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    +--------------------------+-------------+

    注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

    执行SET NAMES utf8的效果等同于同时设定如下:

    SET character_set_client='utf8';

    SET character_set_connection='utf8';

    SET character_set_results='utf8';

    逐个设置。

    如果这样做完还是解决不了你的乱码问题,那终极绝招就来了:

    MySQL修改配置文件:

    找到MySQL Server 5.0安装目录下的my.ini文件

    打开找到两处default-character-set都给它设置成utf8如下:

    第一处:

    [mysql]下的

    default-character-set=utf8

    第二处:

    [mysqld]下的

    default-character-set=utf8

    保存,重启MySQL服务(必须重启不然数据库默认设置虽然改了,但是当前数据库编码还是上次启动服务的设置)

    步骤如下:

    1.右键计算机-->管理-->服务和应用程序-->服务-->找到MySQL-->右键重启。

    最后总结下各种乱码问题最终就是因为数据存储格式与取出显示格式不匹配,若出现乱码问题,不但要检查MySQL中编码格式,还要从调用数据库的地方检查例如:

     jdbcodbc桥接 :

     Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager
         .getConnection(
        "jdbc:mysql://localhost:3306/onlineshopping?useUnicode=true&characterEncoding=UTF-8",
           "root", "123456");

    等等...

    以上纯属个人经验及参考资料得来,如有不足,望大家指点。

    展开全文
  • 最近关于中文显示乱码的贴子比较多,...可以参考一下杨涛涛版主的《各种乱码问题汇总》 http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.html MySQL字符集的原理介绍。摘录于官方文档。...

    最近关于中文显示乱码的贴子比较多,所以也做了个总结:

    可以参考一下杨涛涛版主的《各种乱码问题汇总》
    http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.html

    MySQL字符集的原理介绍。摘录于官方文档。http://dev.mysql.com/doc/refman/5.1/zh/charset.html

    不同的编码格式会导致同一字符,在不同字符集下的编码会不同。同样同一编码在不同的字符集中代码的字符也不相同。当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql, php, query browser, ...)当前使用的字符集不同时,就会造成乱码。 比如一个英国朋友告诉你Long, 当一位中国小学生看到后就会告诉你“龙”而不是“长”

    关于字符集的详细介绍和例子,建议花一点时间看一下
    http://dev.mysql.com/doc/refman/5.1/zh/charset.html (第10章:字符集支持)。


    这里仅摘要一下。

    MySQL中默认字符集的设置有四级:服务器级,数据库级,表级。最终是字段级的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table; 或show full fields from tableName; 来检查当前表中字段的字符集设置。

    MySQL中关于连接环境的字符集设置有  Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。

    乱码后需要检查的信息。(如果需要论坛上的朋友帮助,建议你提供以下信息)


    1. 数据库表中字段的字符集设置show create table TableName show full columns from tableName


    mysql> show create table t1;
    +-------+------------------------------------
    | Table | Create Table                      
    +-------+------------------------------------
    | t1    | CREATE TABLE `t1` (
      `id` int(11) NOT NULL,
      `c1` varchar(30) DEFAULT NULL,
      PRIMARY KEY (`id`)   
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk |
    +-------+------------------------------------
    1 row in set (0.00 sec)
                           
    mysql> show full columns from t1;
    +-------+-------------+----------------+------+-----+-
    | Field | Type        | Collation      | Null | Key |
    +-------+-------------+----------------+------+-----+-
    | id    | int(11)     | NULL           | NO   | PRI |
    | c1    | varchar(30) | gbk_chinese_ci | YES  |     |
    +-------+-------------+----------------+------+-----+-
    2 rows in set (0.00 sec)

    mysql>

     

    2. 当前联接系统参数  show variables like 'char%'


    mysql> show variables like 'char%';
    +--------------------------+----------------
    | Variable_name            | Value
    +--------------------------+----------------
    | character_set_client     | gbk
    | character_set_connection | gbk
    | character_set_database   | latin1
    | character_set_filesystem | binary
    | character_set_results    | gbk
    | character_set_server     | latin1
    | character_set_system     | utf8
    | character_sets_dir       | C:/Program File
    +--------------------------+----------------
    8 rows in set (0.00 sec)

    mysql>


    1. 中文,请确保 表中该字段的字符集为中文兼容:
     big5     | Big5 Traditional Chinese
     gb2312   | GB2312 Simplified Chinese
     gbk      | GBK Simplified Chinese
     utf8     | UTF-8 Unicode

     

    2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';
     比如, set name 'gbk';
     这条命令会同时修改 character_set_client,character_set_connection,character_set_results
     (如果你的这架MySQL中都为中文,则你可以在my.ini或my.cnf中加上或修改这个参数, 参数文件修改后需重启MySQL服务)
    [mysql]
    default-character-set=gbk

     

    3. PHP 乱码, 同样 mysql_query("set name 'gbk'"); 其它API也类似。

     

    4. phpmyadmin里乱码
    phpMyAdmin的config.inc.php中有没有设置$cfg['DefaultCharset']='utf-8';

     

    5. Windows操作系统中命令行("DOS"窗口)下。
     在你的DOS窗中的左上角标题栏片左键,属性,
     在字体中,选择“宋体”,确认
     mysql中 set names 'gbk';

     

    6. ADO.NET, ADO中,可以连接字符串中加入CharSet=UTF8;类似指令以说明connection的字符集。
     Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=UTF8;

     

    7. SQL Manager for MySQL

    用EMS建数据库,

     Character Set设为utf-8

     client charset设UTF-8

     Font charset 设为GB2312_CHARSET


    8. jdbcodbc桥接 http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/bridge.html

           // Load the JDBC-ODBC bridge driver
           Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) ;

          
    // setup the properties
           java.util.Properties prop = new java.util.Properties();
           prop.put(
    "charSet", "Big5");
           prop.put(
    "user", username);
           prop.put(
    "password", password);

          
    // Connect to the database
           con = DriverManager.getConnection(url, prop);

     

    9.  PHP 5.2 版本以上解决乱码问题的一个方法 (由 ljf_ljf [Mark Liang] 提供)

        $conn = mysql_connect("192.168.1.133", "root", "123456") or
           
    die("Could not connect: " . mysql_error());

       
    $program_char = "utf8";

       
    $conn.mysql_select_db("test");
       
    //$conn.mysql_query('SET @@character_set_results = "'.$program_char.'"');
       
        mysql_set_charset(
    $program_char,$conn);
       
    $charset = mysql_client_encoding($conn);
       
    printf ("current character set is %s <br>", $charset);
       
    $result = mysql_query("SELECT id, task_no,pack_path FROM tb_workplan where id = 1 ",$conn);
       
    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
           
    printf ("ID: %s <br> task_no: %s  <br> pack_path :%s <BR>", $row["id"], $row[1], $row["pack_path"]); 
        }
       
    $conn.mysql_free_result($result);
       
    $conn.mysql_close();

     

    9.  存储过程参数乱码

    create procedure t ( aa char(10) charset 'gbk')

    未完。。。

    原文地址:http://blog.csdn.net/ACMAIN_CHM/article/details/4174186

    展开全文
  • 最近在unix系统下做一个管理系统,mysql不能插入读取中文问题困扰了我好久。今天终于解决了这个问题,现在将这个解决方案整理了一下,希望能帮助一些读者,也为以后自己能参考一下。 1,查看mysql中的编码和...

    最近在unix系统下做一个管理系统,mysql不能插入读取中文的问题困扰了我好久。今天终于解决了这个问题,现在将这个解决方案整理了一下,希望能帮助一些读者,也为以后自己能参考一下。

    1,查看mysql中的编码和eclipse的编码:

    mysql中查看编码:show variables like 'chara%';

    eclipse中查看编码:window-preferences-general-contenttypes中的text编码和java class file编码

    2,在第一步中,你应该会发现两者的编码不同,然后你只要分别修改一下mysql和eclipse中的编码

    eclipse中改编码:window-preferences-general-contenttypes中的text编码和java class file编码改为utf8或者GBK,然后点击update

    mysql中改编码:set names utf8或GBK

    在这里要注意的是eclipse中和mysql中的编码改的必须是一致的!

    3,最后,在第二步的基础上,再具体修改数据库和表的编码,以及在jdbc连接数据库的uri后面加个声明语句

    mysql中:alter database 数据库名 convert to character set utf8;

       alter table 表名 convert to character set utf8;

    eclipse中:在jdbc连接数据库的uri后面加上 ?useunicode=true&characterEncoding=utf8;


    至此,你就可以顺利的在你的数据库中存取中文啦。

    展开全文
  • 文章目录Qt 解决MySQL 中文乱码问题解决此问题的必要前提就是:1、版本要匹配。 Qt 解决MySQL 中文乱码问题 折腾了一天,整整一天,终于把该问题解决了。现在整理如下: Qt 连接MySQL后,可能会遇到与MySQL交互过程...
  • 一、首先在建数据库的时候字符集选择如下选项: 二、在Mysql连接字符串后边添加如下参数:   jdbc:mysql://localhost:3306/testuse?Unicode=true&characterEncoding=utf-8
  • 阅读文本大概需要3分钟。mysql是我们项目中非常常用的...下面就来介绍一下如何彻底解决数据库中文乱码情况。 1、中文乱码1.1、中文乱码 createtableuser(namevarchar(11));#创建user表insertintotableuser("carl");#...
  • 在 /etc/my.cnf 里面的client 段加上init_connect=”set names ‘gbk’”更具体的可以参考 http://ria.richtechmedia.com/?p=313 这个链接,说得蛮清楚的。 
  • 阅读文本大概需要3分钟。mysql是我们项目中非常常用的...下面就来介绍一下如何彻底解决数据库中文乱码情况。1、中文乱码1.1、中文乱码createtableuser(namevarchar(11));#创建user表insertintotableuser("carl");...
  • mysql是我们项目中非常常用的数据型...下面就来介绍一下如何彻底解决数据库中文乱码情况。1、中文乱码1.1、中文乱码createtableuser(namevarchar(11));#创建user表insertintotableuser("carl");#添加数据select...
  • MySQL字符集 GBK、GB2312、UTF8区别 解决MYSQL中文乱码问题更新时间:2012年08月27日 21:17:11 作者:MYSQL中文乱码问题原因有很多,脚本之家以前发布过很多相关文章,这篇文章介绍mysql相关的一些知识更详细MySQL中...
  • 阅读文本大概需要3分钟。mysql是我们项目中非常常用的...下面就来介绍一下如何彻底解决数据库中文乱码情况。1、中文乱码1.1、中文乱码createtableuser(namevarchar(11));#创建user表insertintotableuser("carl");...
  • 问题:向mysql 数据库插入数据是,出现中文乱码(中文均显示为‘??’)原因:mysql 默认的字符集是latin1,所以我么需要改为ut8编码才可以解决:1、以管理员权限运行cmd窗口2、查看当前字符集>net start mysql启动...
  • MYSQL中文乱码问题原因有很多,脚本之家以前发布过很多相关文章,这篇文章介绍mysql相关的一些知识更详细
  • 当遇到中文乱码问题时请首先排查是哪个地方乱码,可能是在网络通信的两端,也可能是程序和数据库对接的过程中,阅读本文前请先通过调试确认你的乱码问题出在MySQL。 排查 一般乱码问题的解决方法无非是把编码设置...
  • MySQL字符集 GBK、GB2312、UTF8区别 解决MYSQL中文乱码问题发布时间:2018-04-15 09:54:36MySQL中涉及的几个字符集character-set-server/default-character-set:服务器字符集,默认情况下所采用的。character-set-...
  • 数据库中文乱码是个比较常见的问题,今天笔者就遇到了。系统环境:macOS Sierra 10.12.6MySQL 版本:5.7.18 Homebrew连接软件:Navicat Premium 12.0.12 TNT edition1. MySQL程序问题...
  • mysql是我们项目中非常常用的...下面就来介绍一下如何彻底解决数据库中文乱码情况。 1、中文乱码 1.1、中文乱码 1 create table user(name varchar(11)); # 创建user表 2 insert into table user("carl"); #...
  • 解决中文乱码问题: 可把我给苦恼坏了,太久没碰数据库,人都变傻了。 跟着网上的步骤去改了my.ini等配置,依然无效。 上图: 说来也是奇怪,其他的页面都没有任何问题,除了这个权限的页面。 (由于我是使用mysql ...
  • 1、中文乱码 1.1、中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 加入数据 select * from user; insert into user value("哈哈"); 无法插入中文字符:...
  • 问题:向mysql 数据库插入数据是,出现中文乱码(中文均显示为‘??’)原因:mysql 默认的字符集是latin1,所以我么需要改为ut8编码才可以解决:1、以管理员权限运行cmd窗口2、查看当前字符集>net start mysql启动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,824
精华内容 2,329
关键字:

解决mysql中文乱码问题

mysql 订阅