- 浏览: 127394 次
文章分类
- 全部博客 (121)
- confluence (1)
- android (77)
- PHP (6)
- java (21)
- mysql (3)
- dos (1)
- 传感器 (2)
- 获取电话薄信息 (3)
- 正则表达式 (1)
- 网络 (1)
- 蓝牙 (1)
- 图片 (4)
- intent (3)
- 注意 (1)
- eclipce (1)
- plugins (1)
- dialog (4)
- zip (1)
- sd卡 (1)
- ui (1)
- Camera (1)
- draw (1)
- activity (2)
- launchMode (1)
- 安全 (1)
- Button (1)
- ImageTextButton (1)
- paint (1)
- network (1)
- popupwindow (1)
- jquery (1)
- ant (1)
- notifaction (1)
- Rating (1)
- ListView (3)
- editText (1)
- doc (1)
- jdk (1)
- animation (1)
- sign (1)
- 签名 (1)
- 广播 (1)
- textview (4)
- 删除线 (1)
- 城市列表 (1)
- IDE (1)
- Eclipse (1)
- pixels (2)
- px (1)
- 静默安装 (1)
- Android截屏 (1)
- eclipcetheme (1)
- scroll (1)
- ActivityGroup (1)
- sqlite (1)
- webview (3)
- PullToRefreshListView (1)
- cache (1)
- java引用 (1)
- 命名空间 (1)
- httpClient (1)
- 开源控件 (0)
- sms (1)
- 文字水平滚动 (1)
- 正则 (1)
- 理论知识 (1)
- 属性 (0)
- openfire (1)
- 面试 (1)
- 继承的优缺点 (1)
- PowerDesigner (1)
- 数字格式化 (1)
- andriod (1)
- webservice (1)
- 记录 (0)
- share (0)
- 开源 (1)
最新评论
在程序开发中,有时会被字符乱码的问题所困扰。对此,必须理解 MySQL 的字符集编码设置的原理:在MySQL中,默认使用的是lartin1,也就是ISO8859-1字符集编码。这是一种8位的编码,适用于所有西欧字符。而对于汉字等是不合适的。最好、最通用的编码格式是utf-8,UTF-8(8 位元 Universal Character Set/Unicode Transformation Format)是一种针对Unicode 的可变长度字节编码的Unicode字符集。它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。所以对于8位的西欧字符集来说,更能比较节省空间,而又能够有效地表示汉字等字符。 MySQL服务器对字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
一、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 存储。
二、查看默认字符集
查看系统的字符集和校对的设定可以通过下面的两条命令:
1. mysql> SHOW VARIABLES LIKE 'character%';
2. mysql> SHOW VARIABLES LIKE 'collation_%';
三、修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如:default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
(2) 还有一种修改字符集的方法,就是使用mysql的命令,如:
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> 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 NAMES显示客户端发送的SQL语句中使用什么字符集。因此,SET NAMES 'utf8' 语句告诉服务器“将来从这个客户端传来的信息采用字符集'utf8'。它还为服务器发送回客户端的结果指定了字符集。
它相当于下面的三句指令:
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
新建数据库时指定库的编码:
create database dbName DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
新建数据表时指定表的编码:
create table tableName (uid smallint(5) unsigned NOT NULL auto_increment,username char(50) NOT NULL default '',PRIMARY KEY(uid))TYPE=MyISAM DEFAULT CHARSET=utf8;
另 AJAX 提交中文出现乱码问题 见另一文章:
http://blog.csdn.net/ctowoo/archive/2009/09/26/4596396.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ctowoo/archive/2009/09/26/4596361.aspx
发表评论
-
数字格式化
2013-12-17 11:32 578今天复习了下jdk的api。 ... -
java 基础
2013-12-13 10:33 340继承的优缺点1.优点: 代码共享,减少创建类的工作量,每个子 ... -
使用java jdk 制作签名
2013-07-05 09:28 756使用jdk提供的工具 keytool keytoo ... -
java JDK 版本列表
2013-06-27 22:38 796http://www.oracle.com/technetw ... -
ANT 理解
2013-05-07 12:41 547在学习struts+spring+hibernate,尤其是 ... -
MySql 复制表
2013-04-10 14:17 6471、复制表结构及数据到新表CREATE TABLE 新表SEL ... -
DES3加密
2013-03-14 17:12 863public class DES3 { priva ... -
java 字符串zip压缩与解压缩
2013-02-23 17:06 955// 压缩 public static Stri ... -
为Eclipce安装jar反编译插件
2013-01-10 14:38 1106目的:做个记录,怕下次搞忘求. 反编译插件URL:http: ... -
android 蓝牙
2012-12-04 14:21 799对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Andro ... -
2011-09-25 11:03 Android-开启和关闭wifi的代码段
2012-12-03 11:31 7711·申请权限: android.permission. ... -
Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
2012-12-03 11:25 757获取网络连接状态 随着3G和Wifi的推广,越来越多的And ... -
Android GPS开启与否检测
2012-12-03 10:25 967最近做一个项目:利用到GPS,用户希望在手机GPS未开启的 ... -
JAVA 获取系统编码
2012-12-01 15:45 766package encoding; publi ... -
JAVA断言使用 1.4 推出的新特性
2012-12-01 11:16 806常见的断言特性 前 ... -
手机号码和电话号码的正则表达式
2012-11-18 10:42 1466^[\u4E00-\u9FA50-9a-zA-Z_-]{0, ... -
管理配置文件
2012-11-12 14:59 727建立管理读取配置文件类: public class Conf ... -
Quartz学习 1
2012-11-12 14:55 0Quartz让作业调度简单 Quartz是一个完全由ja ... -
mysql字符集查看以及修改
2012-11-07 10:38 7841.查找MySQL的cnf文件的位置 find / -ina ... -
spring REST中的内容协商(同一资源,多种展现:xml,json,html)
2012-10-30 10:53 982来自:http://www.blogjava.ne ...
相关推荐
MySQL数据库编码问题涉及到字符集的选择、配置以及数据的迁移和处理。字符集是决定数据库中存储和检索文本数据的方式,对于多语言支持和数据迁移至关重要。UTF-8是一种广泛使用的多字节字符编码,支持全球大部分语言...
一、设置数据库编码 在安装 MySQL 时,我们可以选择编码格式。如果已经安装过 MySQL,可以更改配置文件 my.ini 中的设置以达到目的。my.ini 文件位于 MySQL 的安装目录下。打开文件,找到以下两处: [client] port...
中国城市编码 sql mysql 数据库 ,中国所有的城市编码,三级城市编码,数据库脚本 ,中国城市编码 sql mysql 数据库 ,中国所有的城市编码,三级城市编码,数据库脚本 ,中国城市编码 sql mysql 数据库 ,中国所有的...
我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...
MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!
MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...
MySQL数据库巡检手册是MySQL数据库管理员(DBA)在进行数据库管理和维护工作中非常重要的参考资料。巡检手册包含了数据库性能、安全、运行状况等方面的检查项,以确保数据库能够正常稳定运行,及时发现并解决潜在问题...
MATLAB 访问 MySQL 数据库教程及代码 MATLAB 是一个功能强大的数学计算软件,而 MySQL 是一个流行的关系数据库管理系统。在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步...
MySQL数据库技术是目前广泛使用的关系型数据库管理系统之一,它采用标准的SQL语言作为数据操作和查询的手段,能够高效地管理大量数据。在本教案中,将重点介绍MySQL数据库的安装、配置,以及字符集设置等技术点,并...
MySQL数据库是一种广泛应用于Web开发和企业级数据存储的开源关系型数据库管理系统。在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到...
腾讯云数据库mysql产品认证答案涵盖了mysql数据库、腾讯云、云数据库、mysql数据库认证和腾讯云云数据库产品等方面的知识点,是一份非常重要的认证考试答案,能够帮助考生更好地掌握mysql数据库管理和维护知识。
MYSQL 数据库导入导出命令 MySQL 数据库导入导出命令是数据库管理员和开发者经常使用的命令,用于将 MySQL 数据库导出到文件中,以便备份、还原或迁移到其他服务器。下面将详细介绍 MySQL 数据库导入导出的命令和...
mysql数据库基础视频178讲,包括视频、sql脚本、ppt、以及复习资料
MySQL数据库是一种广泛使用的开源关系型数据库管理系统,以其高效、可靠和易于学习的特性深受开发者喜爱。本教程将全面介绍MySQL的基础知识,并通过实例帮助你掌握其核心操作。 首先,我们来了解一下MySQL的基本...
MySQL数据库修复大师是一款专为解决MySQL数据库损坏问题而设计的强大工具。它具备高效的数据恢复功能,能够处理多种类型的数据库文件损坏情况,确保用户能够在数据丢失或系统崩溃后迅速恢复重要信息。这款7.12版的...
详细的解读了mysql数据库的增删改查,存储过程和存储函数,事务等等,以及各种数据库工具的使用教程。
教程名称:疯狂Java肖文吉老师MYSQL数据库视频教程课程目录:【】1_MYSQL数据库_数据库概念【】2_MYSQL数据库_MYSQL的安装【】3_MYSQL数据库_MYSQL基础入门【】4_MYSQL数据库_DDL_建表【】5_MYSQL数据库_DDL_约束...