精华内容
下载资源
问答
  • mysql中文乱码问题
    2022-04-15 15:06:06

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

    强烈建议使用utf8!!!
    utf8可以兼容世界上所有字符!!!

    一、避免创建数据库及表出现中文乱码和查看编码方法
    1、创建数据库的时候:CREATE DATABASE test
    CHARACTER SET ‘utf8’
    COLLATE ‘utf8_general_ci’;
    2、建表的时候 CREATE TABLE database_user (
    ID varchar(40) NOT NULL default ‘’,
    UserID varchar(40) NOT NULL default ‘’,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。
    但是如果你已经建了库和表可以通过以下方式进行查询。
    1.查看默认的编码格式:
    mysql> show variables like “%char%”;

    | 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’;

    2.查看test数据库的编码格式:
    mysql> show create database test;

    | Database | Create Database |

    | test | CREATE DATABASE test /!40100 DEFAULT CHARACTER SET gbk / |

    3.查看yjdb数据库的编码格式:
    mysql> show create table yjdb;
    | yjdb | CREATE TABLE yjdb (
    sn int(5) NOT NULL AUTO_INCREMENT,
    type varchar(10) NOT NULL,
    brc varchar(6) NOT NULL,
    teller int(6) NOT NULL,
    telname varchar(10) NOT NULL,
    date int(10) NOT NULL,
    count int(6) NOT NULL,
    back int(10) NOT NULL,
    PRIMARY KEY (sn),
    UNIQUE KEY sn (sn),
    UNIQUE KEY sn_2 (sn)
    ) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

    二、避免导入数据有中文乱码的问题
    1:将数据编码格式保存为utf-8
    设置默认编码为utf8:
    set names utf8;
    设置数据库db_name默认为utf8:
    ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    设置表tb_name默认编码为utf8:
    ALTER TABLE tb_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    导入:
    LOAD DATA LOCAL INFILE ‘C:\utf8.txt’ INTO TABLE yjdb;
    2:将数据编码格式保存为ansi(即GBK或GB2312)
    设置默认编码为gbk:
    set names gbk;
    设置数据库db_name默认编码为gbk:
    ALTER DATABASE db_name DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
    设置表tb_name默认编码为gbk:
    ALTER TABLE tb_name DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
    导入:
    LOAD DATA LOCAL INFILE ‘C:\gbk.txt’ INTO TABLE yjdb;

    注:1.UTF8不要导入gbk,gbk不要导入UTF8;
    2.dos下不支持UTF8的显示;

    三、解决网页中乱码的问题
    将网站编码设为 utf-8,这样可以兼容世界上所有字符。
      如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
    1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
    2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;
    3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用
    utf8或者gbk;
     

    更多相关内容
  • 一般来说,造成MySQL出现中文乱码的因素主要有下列几点: 1.server本身字符集设定的问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程序(例如php)的连线语系设定问题 对此,...
  • 使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=utf8 [mysql] default-...
  • python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 — 可能情况: 1.mysql数据库各项没有设置编码,默认为’latin’ 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为’...
  • 在搭建Mysql环境的时候遇到了中文乱码问题,下面与大家分享下具体的解决方法,感兴趣的朋友可以参考下哈,希望对大家有所帮助
  • 主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下
  • PHP+MYSQL中文乱码问题

    2020-12-18 11:57:09
    MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行. 解决这个问题其实很简单. 1.在建表的时候设置编码类型为gb2312_chinese_ci. 2.在PHP页面的数据库连接语句加一行mysql_query...
  • 解决MYSQL中文乱码问题

    千次阅读 2022-02-16 22:12:17
    一、乱码的原因: 1、 client客户端的编码不是utf8 2、server端的编码不是utf8 3、database数据库的编码不是utf8 4、数据库的表的编码不是utf8 5、表中的列字段编码不是utf8 主要的原因在于前三个偏多。 二、查看...

    一、乱码的原因:
    1、 client客户端的编码不是utf8
    2、server端的编码不是utf8
    3、database数据库的编码不是utf8
    4、数据库的表的编码不是utf8
    5、表中的列字段编码不是utf8
    主要的原因在于前三个偏多。
    二、查看数据库的编码方式
    mysql>show variables like ‘character%’;
    在这里插入图片描述
    此截图是解决之后的,查看哪个不是和上面一样。

    三、解决的办法有俩种:
    1、对/etc/mysql/my.cnf 配置文件进行修改

    [mysqld]
    character-set-server=utf8
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    

    2、由mysql -uroot -p命令进入mysql,输入以下设置

    SET character_set_client = utf8;
    SET character_set_results = utf8;
    SET character_set_connection = utf8;
    

    针对在客户端输入:数据库、表、列字段设置
    alter database <数据库名> character set utf8;
    alter table <表名> character set utf8;
    alter table <表名> modify <字段名> character set utf8;
    注意:设置之后记得重启,输入命令:service mysql restart
    四、本人在项目遇到乱码问题是以下方法解决的
    出现问题的形式:项目的服务器向数据库插入数据时,表中的数据中文为乱码。
    解决方法:对封装的数据库操作类中,建立连接数据库时,设置字符集utf8

     //建立连接后, 自动调用设置字符集语句,_dbConf._charset = utf8
     if(!_dbConf._charset.empty()) {	
     if (mysql_options(_pstMql, MYSQL_SET_CHARSET_NAME, _dbConf._charset.c_str())) {
     throw MysqlHelper_Exception(string("MysqlHelper::connect: mysql_options MYSQL_SET_CHARSET_NAME ") + _dbConf._charset + ":" + string(mysql_error(_pstMql)));
     }
     }
    

    完美解决向数据库插入数据时中文乱码问题。

    展开全文
  • 近一段时间学习Django,在进行与MySQL数据联合使用的插入数据的时候遇到下边的问题:  /usr/local/lib/python2.7/dist-packages/Django-1.11.dev20170117002028-py2.7.egg/django/db/backends/mysql/base.py:109: ...
  • 最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。 首先: 用show variables like “%colla%”;show varables like “%...
  • 乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少...
  • mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存...1、中文乱码1.1、中文乱码create table user(name varchar(11)); # 创建user表insert into table user("carl"); # 添加数据select * fr...

    mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

    1、中文乱码

    1.1、中文乱码

    create table user(name varchar(11)); # 创建user表

    insert into table user("carl"); # 添加数据

    select * from user;

    76ac444c001f03de84d2acf5a0b831e4.png

    insert into user value("哈哈");

    511baac9de6dc8e691fee2b8f72f43bb.png

    1.2、查看表字符编码

    mysql> show create table user \G;

    *************************** 1. row ***************************

    Table: user

    Create Table: CREATE TABLE `user` (

    `name` varchar(11) DEFAULT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    1 row in set (0.00 sec)

    我们可以看到表的默认字符集是latin1.

    所以我们在创建表的时候就需要指定表的字符集:

    create table user(name varchar(11)) default charset=utf8;

    这样在Linux里面可以访问并且可以插入与访问这个表了。

    1.3、数据库与操作系统编码

    虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。

    bc816ae36ea0fd6a79b73d6b5dde9b8d.png

    而且数据库的编码也存在问题。

    96ad780ef534ee8bfce87de243838e07.png

    这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。

    2、mysql设置变量的范围

    2.1、session范围

    查看数据库编码:

    show variables like '%char%';

    c424339302981a948887048fc713007f.png

    修改字符编码:

    set character_set_server=utf8;

    set character_set_database=utf8;

    show variables like '%char%';

    e156aae3df60ee22de8f774deedcb9f9.png

    我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

    f2fe3a59b449e64f7e0b1202531a9980.png

    2.2、global范围

    mysql设置变量的范围默认是session范围。如果设置多个会话的字符集那么需要设置global范围:Set [global|session] variables …

    set global character_set_database=utf8;

    set global character_set_server=utf8;

    show variables like '%char%';

    当我们跨会话查看mysql字符集都会看到都是utf8。如果你以为万事大吉了的话,那么你就大错特错了。

    2.3、设置数据全局范围

    当我们数据库重启的时候,你们发现设置global范围的值又变成latin1了。

    service mysqld restart

    mysql -uroot -pyourpassword

    show variables like '%char%';

    4e6bb08c087a5668170a5cbe381fbb02.png

    修改mysql配置文件/etc/my.cnf。

    [mysqld]

    character-set-server=utf8

    [client]

    default-character-set=utf8

    [mysql]

    default-character-set=utf8

    请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:

    046065103c41ae2699b726d2c4baaec7.png

    OK。这下如果你重启mysql服务也会发现它的字符集是utf8.

    f60139e9108294d0ac34b3c46c20ccd0.png

    而且我们创建表的时候不需要指定字符编码,它默认就是utf8;

    drop database test;

    create database test;

    use test;

    create table user(name varchar(11));

    show create table user \G;

    521022b7dbaec5db95f4531e758ffb34.png

    3、总结

    我看网上很多答案都是直接在session级别设置mysql的字符编码,这是治标不治本的方法。我们还是要从源头上解决这个问题。那就是修改mysql默认的配置文件,把它的字符集修改成能够使用中文字符的UTF8就OK了。

    PHP彻底解决mysql中文乱码

    彻底解决mysql中文乱码 mysql是我们项目中非经常常使用的数据型数据库. 可是由于我们须要在数据库保存中文字符,所以经常遇到数据库乱码情况.以下就来介绍一下怎样彻底解决数据库中文乱码情况. 数据 ...

    总结--解决 mysql 中文乱码

    首先分析一下导致mysql 中文乱码的原因: 1.建表时使用了latin 编码 2.连接数据库的编码没有指定 3.写入时就已经乱码(这种情况需要自己检查源数据了) 解决方法总结: 1.创建库时指定编码 ...

    彻底解决mysql中文乱码

    mysql是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 cre ...

    彻底解决mysql中文乱码的办法 &quest;&quest;&quest;

    MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如p ...

    彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码

    MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如server字符编码还停留在latin12.table的语系设定问题(包含character与collation)3.客 ...

    解决mysql中文乱码(总)

    转自:http://hi.baidu.com/cnvienna/blog/item/2e99efdfd94fc61862279801.html MySQL会出现中文乱码的原因不外乎下列几点: .ser ...

    解决Mysql中文乱码问题的方案

    MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如ph ...

    win10 系统解决mysql中文乱码问题

    问题: 向mysql 数据库插入数据是,出现中文乱码(中文均显示为‘??’) 原因: mysql 默认的字符集是latin1,所以我么需要改为ut8编码才可以 解决: 1.以管理员权限运行cmd窗口 ...

    解决MySQL中文乱码的问题

    遇到中文乱码问题,首先用status命令检查数据库的配置,如下: 上图会显示数据库配置的各项信息. 还可以用 show create database XXX,来显示创建数据库的时候的编码设置. 一般 ...

    随机推荐

    php 教程列表

    php教程 php概述 php环境搭建 PHP书写格式 php变量 php常量 PHP注释 php字符串 string PHP整型 integer PHP浮点型 float php布尔型 php数据类 ...

    java类的访问权限

    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...

    MongoDB - The mongo Shell&comma; Configure the mongo Shell

    Customize the Prompt You may modify the content of the prompt by setting the variable prompt in the  ...

    java实现简单的文件筛选

    package filenameFilter; import java.io.File; /* * 实现功能: * 获取指定路径下的指定格式的文件; * */ public class Test { ...

    SpringMVC基础-controller方法中的参数注解

    @PathVariable  映射 URL 绑定的占位符 带占位符的 URL 是 Spring3.0 新增的功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义 通过 ...

    key&period;go

    package].Key)         if err = waitDelete(ctx, client, lastKey, resp.Header.Revision); err != nil { ...

    进程,线程,协程,io多路复用 总结

    并发:要做到同时服务多个客户端,有三种技术 1. 进程并行,只能开到当前cpu个数的进程,但能用来处理计算型任务 ,开销最大 2. 如果并行不必要,那么可以考虑用线程并发,单位开销比进程小很多 线程: ...

    echo &ast; 打印当前目录列表

    所以在脚本中 类似 echo $a*  如果$a为空  则会打印 目录列表.

    Linux IPC BSD Pipe

    mkfifo() //创建有名管道(FIFO special file),创建完了就像普通文件一样open(),再读写,成功返回0,失败返回-1设errno.VS$man 3 mkfifo #incl ...

    Celery-------项目目录

    在实际应用中Celery的目录是有规则的 要满足这样的条件才可以 目录Celery_task这个名字可以随意,但是这个目录下一定要有一个celery.py这个文件 from celery import ...

    展开全文
  • 在进行数据库连接的时候,发现代码插入不了中文,在此将中文乱码问题做一个简单的总结。 一:将IDEA中的文件设置为UTF-8编码方式 将File => Settings => Editor => File Encodings => Project Encoding...

    在进行数据库连接的时候,发现代码插入不了中文,在此将中文乱码问题做一个简单的总结。

    一:将IDEA中的文件设置为UTF-8编码方式
    将File => Settings => Editor => File Encodings => Project Encoding设置为UTF-8
    在这里插入图片描述
    二:确保数据库,表,字段等编码也是UTF-8方式

    1.查看全局变量和会话变量的字符集
    SHOW GLOBAL VARIables LIKE ‘%CHARACTER%’;
    在这里插入图片描述

    SHOW SESSION VARIABLES LIKE ‘%CHARACTER%’;
    在这里插入图片描述
    2.通过set命令将全局变量编码字符集全部转换为UTF-8,会话变量同理,将global改为session即可

    SET @@global.character_set_client = ‘utf8’;
    SET @@global.character_set_connection = ‘utf8’;
    SET @@global.character_set_database = ‘utf8’;
    SET @@global.character_set_results = ‘utf8’;
    SET @@global.character_set_server = ‘utf8’;
    SET @@global.character_set_system = ‘utf8’;

    在这里插入图片描述
    3.查看表和字段的字符集

    查看表字符集
    SHOW CREATE TABLE tableName;
    在这里插入图片描述
    找到本次问题的所在了,此表的字符集不是UTF-8

    修改表的字符集
    方式一:
    ALTER TABLE tableName CONVERT TO CHARACTER SET utf8;
    方式二:
    ALTER TABLE tableName DEFAULT CHARACTER SET utf8;

    在这里插入图片描述
    在这里插入图片描述
    修改字段字符集
    方式一:
    ALTER TABLE tableName CHANGE fieldName fieldNewName 字段类型 CHARACTER SET utf8;
    方式二:
    ALTER TABLE tableName MODIFY fieldName 字段类型 CHARACTER SET utf8;

    展开全文
  • JDBC 连接 MySQL 中文乱码问题

    千次阅读 2019-04-07 13:02:59
    JDBC 连接 MySQL 中文乱码问题 前言 最近在写小项目,用到了上个月刚学的mysql和 JDBC,在java查询时出现了中文乱码,在网络上查询资料,发现相关问题比较混乱,故整理一下解决方法。 原因 字符集不匹配 运行环境 ...
  • 解决乱码的核心思想是统一编码。我们在使用 MySQL 建数据库和建表时应尽量使用统一的编码,强烈推荐的是 utf8 编码,因为该编码几乎可以兼容世界上所有的字符。 数据库在安装的时候可以设置默认编码,在安装时就一定...
  • 以下的文章主要向大家介绍的是c# 连接MySQL中文乱码问题的正确解决方法,一开始不太清楚为什么整个数据库的默认配置都为utf-8,而且有些人在使用http协议传送utf-8的汉字时,是正确的执行了的。于是找 set names XX...
  • 1、linux 中 MySQL 出现中文乱码问题如下操作 编辑vi /etc/my.cnf 文件,添加图中标记三行 [client] default-character-set=utf8 [mysqld] character-set-server=utf8 [mysql] default-character-set=utf8 重启...
  • 今天在做java前后端分离项目的时候遇到了读取mysql中文乱码问题,首先在项目中的要求是通过springboot和mybatis-plus构建访问数据库,后面在通过浏览器访问固定地址读取查询表内容的时候(select * from hospital_...
  • 个人总结了遇到使用Mysql数据库插入中文时产生乱码问题的解决方法
  • Qt 连接MySQL后,可能会遇到与MySQL交互过程中出现中文乱码问题。 解决此问题的必要前提就是: 1、版本要匹配。 2、数据库连接正常。 3、数据库的编码格式与Qt的编码统一、 1、版本要匹配。 Qt for windows 的版本...
  • docker mysql中文乱码问题
  • 如果持久化的类中有包括了汉字的String对象,那么对应到数据库中汉字的部分就会是乱码。这主要是由于MySQL数据表的字符集与我们当前使用的本地字符集不相同造成的
  • 1.Jsp页面的编码格式要是UTF-8.2.数据库的字符编码格式UTF-8.3.在WEB.XML文件中添加过滤器,参考代码如下:encodingFilterorg.springframework.web.filter....在连接数据库时指定编码格式:"jdbc:mysql://localhost:...
  • 输入如下命令更新安装源 sudo apt-get update 安装mysql sudo apt-get install mysql-server ...确认mysql是否启动,MySQL节点...如下为解决MySQL中文乱码问题 进入/etc/mysql/mysql.conf.d/mysqld.cnf文件,在.
  • 主要介绍了JSP MySQL插入数据时出现中文乱码问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,851
精华内容 27,140
关键字:

mysql中文乱码问题

mysql 订阅