- 浏览: 136621 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (172)
- java (172)
- c# winform 关于窗体最大化时的是否全屏效果与是否遮盖任务栏 (1)
- c# winform 只运行一个程序实例 (1)
- Shiro权限框架 (1)
- Java字节码(.class文件)的代码解析 (1)
- Hibernate、Spring和Struts工作原理及使用理由 (1)
- 基本PKG处理命令 (1)
- 最近写的代码的小结 (1)
- Dual Palindromes (1)
- 编译TortoiseSVN1.7源代码笔记 (1)
- Android项目代码混淆 (1)
- 关于就业叨咕几句 (1)
- Java重定向System.out和System.err (1)
- IHS与WAS集成插件静默安装 (1)
- 专题地图概述 (1)
- 关于MapXtreme2004附带Sample不能运行的问题 (1)
- SQL注入漏洞 (1)
- 回顾过去 展望未来(写给自己) (1)
- DB2认证考试经验谈(700&&701) (1)
- 今天用到了RM格式文件的分割工具RealProducer (1)
- 搜索引擎还是很有发展前途的 (1)
- 泰利德破解,实现学校机房免费上网 (1)
- Arduino 引言:移动互联外设传感展望 (1)
- c/c++ static 用法总结(三版本合一) (1)
- JQuery与xml的组合谈 (1)
- Android开发之消息处理机制(一)——Handler (1)
- Android开发之PopupWindow (1)
- 解析BitmapData.getPixel32()返回值因何不准确 (1)
- 关于Ext引用js的顺序问题 (1)
- Js事件大全 (1)
- 使用JavaFX2.0编写国际象棋游戏 (1)
- Hibernate/JPA常见异常分析与解决 (1)
最新评论
-
amcucn:
这排版看得
Shiro权限框架 -
WAMING5:
这也太紧凑了,眼看花了
Shiro权限框架 -
longzhun:
大虾 ,看得出你很懒啊!发个贴 这样子怎么看!!!
Shiro权限框架 -
swanky_yao:
活干的不细!!
Spring+Hibernate框架下Mysql读写分离、主从数据库配 -
饶首建:
不错,不过用处比较少吧
批处理设ip和dns
mysql的字符集支持(character set support)有两个方面:字符集(character set)和排序方式(collation)。对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.mysql默认字符集:mysql对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置. (1)编译mysql 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装mysql 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储,不过我们如果安装 mysql,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把 default_character_set 设置为 utf-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 utf-8 存储。
2.查看默认字符集(默认情况下,mysql的字符集是latin1(iso_8859_1)通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> show variables like 'character%';
+--------------------------+---------------------------------+
| variable_name | value |
+--------------------------+---------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | d:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> show variables like 'collation_%';
+----------------------+-----------------+
| variable_name | value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3.修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> show variables like 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| variable_name | value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | d:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
(2) 还有一种修改字符集的方法,就是使用mysql的命令
set character_set_client = utf8 ;
set character_set_connection = utf8 ;
set character_set_database = utf8 ;
set character_set_results = utf8 ;
set character_set_server = utf8 ;
mysql> set collation_connection = utf8 ;
mysql> set collation_database = utf8 ;
mysql> set collation_server = utf8 ;
一般就算设置了表的默认字符集为utf8并且通过utf-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
set names 'utf8';
它相当于下面的三句指令:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;
不知道什么原因,我在自己机器上把上述三个字符集都设置成utf8后,查询中文结果还是乱码,只有把character_set_results设置成gbk之后才能从命令行正常显示中文.
set character_set_results=gbk;
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.mysql默认字符集:mysql对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置. (1)编译mysql 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装mysql 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储,不过我们如果安装 mysql,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把 default_character_set 设置为 utf-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 utf-8 存储。
2.查看默认字符集(默认情况下,mysql的字符集是latin1(iso_8859_1)通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> show variables like 'character%';
+--------------------------+---------------------------------+
| variable_name | value |
+--------------------------+---------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | d:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> show variables like 'collation_%';
+----------------------+-----------------+
| variable_name | value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3.修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> show variables like 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| variable_name | value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | d:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
(2) 还有一种修改字符集的方法,就是使用mysql的命令
set character_set_client = utf8 ;
set character_set_connection = utf8 ;
set character_set_database = utf8 ;
set character_set_results = utf8 ;
set character_set_server = utf8 ;
mysql> set collation_connection = utf8 ;
mysql> set collation_database = utf8 ;
mysql> set collation_server = utf8 ;
一般就算设置了表的默认字符集为utf8并且通过utf-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
set names 'utf8';
它相当于下面的三句指令:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;
不知道什么原因,我在自己机器上把上述三个字符集都设置成utf8后,查询中文结果还是乱码,只有把character_set_results设置成gbk之后才能从命令行正常显示中文.
set character_set_results=gbk;
发表评论
-
Hibernate/JPA常见异常分析与解决
2012-02-07 17:24 14691. ClassNotFoundException: ... -
使用JavaFX2.0编写国际象棋游戏
2012-02-07 16:24 1061前面发布了不少Javafx2的教程,不觉手痒,想尝试一 ... -
Js事件大全
2012-02-04 15:34 746一般事件 事件 ... -
关于Ext引用js的顺序问题
2012-02-02 15:49 720今天自己搞了个ext的helloworld,所需的包都 ... -
解析BitmapData.getPixel32()返回值因何不准确
2012-02-02 12:29 955<div style="widt ... -
Android开发之PopupWindow
2012-01-31 13:48 1648<h1>Android开发之PopupWi ... -
Android开发之消息处理机制(一)——Handler
2012-01-11 15:19 1130<h1>Android开发之消息处理机制( ... -
JQuery与xml的组合谈
2011-12-21 17:18 770JQuery与xml的组合谈 今天谈的是XML,学ja ... -
c/c++ static 用法总结(三版本合一)
2011-12-21 10:34 785<span style="&qu ... -
Arduino 引言:移动互联外设传感展望
2011-12-20 14:08 1296作者:mznewfacer (Wolf Geek) ... -
泰利德破解,实现学校机房免费上网
2011-12-20 13:58 921泰利德破解,实现学校机房免费上网<br> ... -
搜索引擎还是很有发展前途的
2011-12-19 11:49 925相信大家已经听说,在头几天,搜狐推出了一个专业搜索门户 ... -
今天用到了RM格式文件的分割工具RealProducer
2011-12-19 09:19 673项目要加一些视频文件,这些视频都是几个老师对数据结构课 ... -
DB2认证考试经验谈(700&&701)
2011-12-16 17:17 1080很多人都通过了D ... -
回顾过去 展望未来(写给自己)
2011-12-15 16:19 1447本来想用“昨天今天明天”做标题来着,但是人家本山大叔说 ... -
SQL注入漏洞
2011-12-15 12:19 690CSDN上的ASP.NET电子杂志下载下来看,就看到了 ... -
关于MapXtreme2004附带Sample不能运行的问题
2011-12-15 10:54 648</span> -
专题地图概述
2011-12-14 12:49 803<p class="MsoNorma ... -
IHS与WAS集成插件静默安装
2011-12-14 12:04 936<span style="col ... -
Java重定向System.out和System.err
2011-12-13 14:49 1140<div>继承PrintStream类: ...
相关推荐
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
MySql乱码问题解决方法MySql乱码问题解决方法
解决Mysql乱码问题 解决Mysql乱码问题
Mysql乱码问题
windows访问远程linux下mysql乱码问题 搜集的,大家遇见同样问题可以参考一下
MySql乱码问题的解决方法,MySql乱码问题的解决方法,MySql乱码问题的解决方法
mysql乱码问题解决方案,三套方案希望可以帮助到大家!!!!
Java连接MySQL乱码问题解决
彻底解决winform 和asp.net 连接MySQL数据库显示数据出现乱码的方法,因为是gb2312编码的文本文件,在线查看会出现乱码,进入下载地址,点鼠标右键选择[另存为..]
使用java的SSH+Mysql时出现插入数据乱码还有查询也出现乱码问题
可以完美的帮你解决windows下mysql的乱码问题,保证数据库数据不被乱码侵蚀
第一种方法,很精辟的总结: 经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧: WINDOWS 下导入应该这样 使用MYSQL的命令
介绍了本人学习过程中总结出的对mysql数据库操作的几个类,这些类封装了对mysql数据库的基本操作,并解决了乱码问题
mysql数据库乱码问题结决,中文问题解决
打开mysql改变字符集 然后在获取连接时候改变字符集 最后在查询之前改变字符集 我用过的可以解决
提供解决mySQl中文乱码的终极解决方案
mac OSX 系统 MySQL中文乱码解决办法