MySQL不能插入中文字符及中文字符乱码问题

MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8。
在安装后MySQL之后,它的配置文件不是很给力,不知道你们的是不是,反正我的是!

开始插入中文字符的时候出现如下错误:
ERROR 1366 (HY000): Incorrect string value: '\xBB\xA7' for column 'Tname';
也就是不支持插入中文字符,于是通过网上的学习,在它的配置文件my-default.ini文件中添加了一些东西:
[mysqld]
character-set-server=utf8
datadir = "F:/MySql数据文件/"
#表名不区分大小写(此与编码无关)

[mysql]
default-character-set = utf8

[mysql.server]标签下加上一行
default-character-set = utf8

[mysqld_safe]
default-character-set = utf8

[client]
default-character-set = utf8

 

通过 show varialbes like 'char%' 查看有关字符集的变量如下:

另外可以过  set names 'charsetname'; 设置字符集

    比如, set names 'gbk';  这条命令会同时修改 character_set_client,character_set_connection,character_set_results, 很好用!

这样MySQL在创建新表格的时候默认的就是utf8的编码方式了!
但是注意的是,当前数据库中已存在的数据仍保留现有的编码方式,
如果需要更改编码格式:
利用下面的指令可以尝试一下:
查看 数据库表中字段的字符集设置 。show create table TableName 或 show full columns from tableName
修改数据库成utf8的. alter database name character set utf8;
修改表默认用utf8的 alter table name character set utf8;
修改字段用utf8的 alter table name modify type_name(变量名字) varchar(任意大小) CHARACTER SET utf8;

时间: 2024-12-23 20:20:25

MySQL不能插入中文字符及中文字符乱码问题的相关文章

JSP MySQL插入数据时出现中文乱码问题的解决方法_JSP编程

当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .connection.database.results

java-当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?

问题描述 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 怎么才能解决问题,跟jdbc driver Manager的设置有关系吗? 解决方案 数据库字符集 与 页面编码 都使得 是 uft-8?得统一 解决方案二: 建议编码格式采用UTF-8的格式 解决方案三: 在使用数据的每一个节点上,其编码方式必须要一致否则就会出现乱码.特别是使用MySQL时,客户端,连接器.数据库

编码格式-mysql数据库插入中文 老是出错

问题描述 mysql数据库插入中文 老是出错 如图 已经在配置文件中改了编码格式 但是还是插不了中文啊 解决方案 大概缺少了GB2312 再增加GB2312配置 解决方案二: 修改成utf-8试试 解决方案三: 你创建的数据库的编码格式统一了吗?最好统一成utf-8. 解决方案四: 其实 你可以使用客户端试试,sqlyog 或者 navicat 解决方案五: 通常 使字库确实或字符编码设置不当造成的. 解决方案六: 建议UTF-8... 解决方案七: 你使用 show create table

关于JSP中,中文问题(泛指字符问题),以及常见错误调试手记

js|错误|问题|中文 关于JSP中,中文问题(泛指字符问题),以及常见错误调试手记 sports98写于2001-1-9 序言:在论坛中,生活中,工作中,有不少和我一样属于鸟级的用户,在面对着不明白的问题的时候就盲目了,多交流,多写写日记就好的多了 文章内容关于:2001-01-08日,编写/调试[用户注册程序] 编写环境:WIN2K(简体中文版) server sp2 + TOMCAT4.0 + J2SDK1.3+MYSQL4.0(alpha)检测数据库内容环境:WIN2K(简体中文版) s

JavaScript如何判断字符串长度(英文占1个字符,中文汉字占2个字符)

//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } 方法二: function strlen(str){

Flex正则表达式判断中文或全角字符代码

Flex中一文本框,其值的length取出的是字符个数,并不是字节长度,如果含有中文或者全角字符,一个字符是2个字节. 计算其字符长度, ActionScript代码 复制代码 代码如下: for(var i:int=0;i<newStr.length;i++){ var char:String = newStr.substr(i,1); if(/[^x00-xff]/g.test(char)){ //中文加10 screenLength = screenLength + 10; }else{

y 中文乱码-PHP环语言对MySQL数据库进行中文字段的数据插入和查询时候遇到的乱码问题

问题描述 PHP环语言对MySQL数据库进行中文字段的数据插入和查询时候遇到的乱码问题 #定义插入数据库的时候定义插入的字符串的编码为 mysql_query('SET NAMES UTF8'); 这时候通过PhpMyadmin能够正常看到插入的正文字段信息,但是通过 mysql_query("select * from $table_name limit $offset,$rows"); 查询该字段的时候,显示的字段信息是乱码 如果不对插入数据库的编码做任何的定义,直接插入数据库中文

判断字符串的长度(优化版)中文占两个字符_javascript技巧

刚看到以前写的js方法:计算字符串长度(中文算2个字符). 方法: var str = '123是是是'; var strArr = str.split(''); var count = 0; for(strArr.length){ **** } ------(不上代码了,累!!) 修改后: 复制代码 代码如下: var str = '123是是是'; var tmpStr = str.replace(/[\u4e00-\u9fa5]/gi,"aa"); //print tmpStr.

vs2008在使用System.Data.OracleClient连接数据库中文字符出现乱字符,急呀

问题描述 asp.net连接oracle9i数据库,数据库字符集为:AMERICAN_AMERICA.US7ASCII使用System.Data.OracleClient连接数据库中文字符出现乱字符,web.config中的连接字符串为:<addname="wd20"connectionString="DataSource=wd20;UserId=username;Password=****;IntegratedSecurity=no;"providerNam

Flex正则表达式判断中文或全角字符代码_Flex

Flex中一文本框,其值的length取出的是字符个数,并不是字节长度,如果含有中文或者全角字符,一个字符是2个字节. 计算其字符长度, ActionScript代码 复制代码 代码如下: for(var i:int=0;i<newStr.length;i++){ var char:String = newStr.substr(i,1); if(/[^\x00-\xff]/g.test(char)){ //中文加10 screenLength = screenLength + 10; }else