Miedź Legnica插入到了数据库后就成了 Mied? Legnica mysql linux库 表 字段类型都是 utf-8问个字符集的问题我把 Miedź Legnica 插入到数据库去 到了数据库后 就成了 Mied? Legnica1问题如何产生2 该如何解决这个问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 字符集的问题, 设置为支持德语的字符集或者直接用UTF8参考下贴中关于字符集的介绍部分http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 [mysqld]default-character-set=utf8default-collation=utf8_unicode_cicharacter-set-server=utf8show variables like "character_set_%";+--------------------------+---------------------------------------------------------+| 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 | latin1 || character_set_system | utf8 || chshow variables like "collation_%";+----------------------+-------------------+| Variable_name | Value |+----------------------+-------------------+| collation_connection | utf8_general_ci || collation_database | utf8_general_ci || collation_server | latin1_swedish_ci |+----------------------+-------------------+3 rows in setmysq这2个命令发现该mysql 必须进行修改配置 否则会有服务器的字符集错误 有没有什么命令 直接在 查询command里可以修改 character_set_server --------utf8collation_server --------utf8 我目前不需要动 服务器上任何东西 看该作者mysqld]default-character-set=utf8default-collation=utf8_unicode_cicharacter-set-server=utf8重启MySQL伴随着我已有四五年了,在使用MySQL的过程中,也碰到过字符编码问题(乱码)。在Google中搜索“mysql 乱码”,可以查到“429,000”条结果;搜索“jsp 乱码”,可以查到“335,000”条结果,当然JSP乱码不一定就是MySQL乱码,但多数情况是编码问题(可能是页面编码、数据库编码)。可见,编码问题在我们开发过程中是经常出现的,因此对编码的了解、设置和修改就显得及其重要了。今天对MySQL边学习边查资料特意整理总结本文,以作备份,希望给各网友参考,一起学习讨论。一、MySQL字符集和校对规则我们都知道,字符集就是一套文字符号及其编码、比较规则的集合,因为计算机只认识二进制代码,所有我们必须要有一个转换。MySQL的字符集包括字符集(Character Set)和校对规则(Collation)两个概念。字符集是用来定义MySQL存储字符串的方式,而校对规则则定义了比较字符串的方式。字符集和校对规则是一对多的关系,每个字符集至少对应一个校对规则,称为默认校对规则。查看所有字符集的命令:show character set;或是查看information_schema.character_sets,可以得到所有的字符集和它的默认的校对规则,它的表结构:desc information_schema.character_sets;查看字符集的校对规则:show collation like 'GBK%';校对规则命名约定:以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元,即比较是基于字符编码的值而与语言无关)结束。实验命令:select case when 'A' COLLATE utf8_general_ci = 'a' COLLATE utf8_general_ci then 'YES' else 'NO' end;(YES)select case when 'A' COLLATE gbk_chinese_ci = 'a' COLLATE gbk_chinese_ci then 'YES' else 'NO' end;(YES)select case when 'A' COLLATE gbk_bin = 'a' COLLATE gbk_bin then 'YES' else 'NO' end;(NO)二、设置字符集MySQL的字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和字段级。服务器级:[mysqld]default-character-set=utf8[mysql]default-character-set=utf8或是启动时加上参数:mysqld --default-character-set=utf8或是编译时加上参数:./configure --width-charset=utf8查看字符集和校对规则:show variables like 'character_set_server';show variables like 'collation_server';数据库级:查看字符集和校对规则:show variables like 'character_set_database';show variables like 'collation_database';表级:查看字符集和校对规则:show create table t \G四、简单修改字符集简单修改只对以后的数据有影响,如果数据库中没有数据或是不想修改以前的数据,可以使用简单修改。简单修改命令:alter database character set utf8;alter table t character set utf8;个人推荐在创建数据库时明确指定字符集和校对规则,避免受到默认值的影响。创建数据库时指定:create database databasename default charset GBK;创建数据表时指定:create table tablename(....) ENGIND=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;五、完全修改字符集当数据库中已有数据,想修改数据集,不能通过简单的修改字符集完成,需要先将原数据导出,经过适当调整后重新导入才可完成。通过七步完成字符集的完全修改(假设原字符集是latin1,想修改成GBK)。1、导出表结构:mysqldump -uroot -p --default-character-set=GBK -d databasename>createdb.sql说明:--default-character-set=GBK 表示设置以什么字符集连接;-d 表示只导出表结构,不导出数据。2、手工修改createdb.sql中表结构定义中的字符集(latin1)为新的字符集(GBK);3、确保数据库中的数据不再更新,导出所有的数据:mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename>data.sql说明:--quick 该选项用于转储大的表,它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行,并在输出前将它缓存到内存中;--extended-insert 使用包括几个values的多行insert语法;--no-create-info 不要create table语句;--default-character-set=latin1 表示按照原有的字符集导出所有的数据。4、打开data.sql,将set names latin1修改成set names GBK;5、使用新的字符集创建数据库:create database databasename default charset GBK;6、创建表:mysql -uroot -p databasename < createdb.sql7、导入数据:mysql -uroot -p databasename < data.sql六、最后建议服务器的字符集参数不要修改,而是是创建数据库进加上字符集,特别是在创建表时记得加上,这样做的目的是为了使修改的影响最小化。 sql语句优化 mysql 运行问题,请高人解答,my.INI采用默认配置 急!!!!mysql查询问题!!!! 一句sql实现 mysql递归 这句oracle的判断位置截取字符如何改写成postgreSQL 开源数据库就是免费数据库么? 关于mysql得数据备份 mysql连接错,什么原因? 最近碰到一个问题不知道如何解决? 为什么两个程序不能同时访问一个sql数据库 mysql问题,求助!!!!!!!!!!! 求一句MYSQL
参考下贴中关于字符集的介绍部分
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
default-character-set=utf8
default-collation=utf8_unicode_ci
character-set-server=utf8show variables like "character_set_%";
+--------------------------+---------------------------------------------------------+
| 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 | latin1 |
| character_set_system | utf8 |
| ch
show variables like "collation_%";+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in setmysq这2个命令发现该mysql 必须进行修改配置 否则会有服务器的字符集错误
可以修改
character_set_server --------utf8
collation_server --------utf8
我目前不需要动 服务器上任何东西
default-character-set=utf8
default-collation=utf8_unicode_ci
character-set-server=utf8
重启
MySQL伴随着我已有四五年了,在使用MySQL的过程中,也碰到过字符编码问题(乱码)。
在Google中搜索“mysql 乱码”,可以查到“429,000”条结果;搜索“jsp 乱码”,可以查到“335,000”条结果,当然JSP乱码不一定就是MySQL乱码,但多数情况是编码问题(可能是页面编码、数据库编码)。
可见,编码问题在我们开发过程中是经常出现的,因此对编码的了解、设置和修改就显得及其重要了。
今天对MySQL边学习边查资料特意整理总结本文,以作备份,希望给各网友参考,一起学习讨论。一、MySQL字符集和校对规则
我们都知道,字符集就是一套文字符号及其编码、比较规则的集合,因为计算机只认识二进制代码,所有我们必须要有一个转换。
MySQL的字符集包括字符集(Character Set)和校对规则(Collation)两个概念。字符集是用来定义MySQL存储字符串的方式,而校对规则则定义了比较字符串的方式。
字符集和校对规则是一对多的关系,每个字符集至少对应一个校对规则,称为默认校对规则。
查看所有字符集的命令:show character set;
或是查看information_schema.character_sets,可以得到所有的字符集和它的默认的校对规则,它的表结构:desc information_schema.character_sets;
查看字符集的校对规则:show collation like 'GBK%';
校对规则命名约定:以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元,即比较是基于字符编码的值而与语言无关)结束。
实验命令:
select case when 'A' COLLATE utf8_general_ci = 'a' COLLATE utf8_general_ci then 'YES' else 'NO' end;(YES)
select case when 'A' COLLATE gbk_chinese_ci = 'a' COLLATE gbk_chinese_ci then 'YES' else 'NO' end;(YES)
select case when 'A' COLLATE gbk_bin = 'a' COLLATE gbk_bin then 'YES' else 'NO' end;(NO)二、设置字符集
MySQL的字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和字段级。
服务器级:
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
或是启动时加上参数:mysqld --default-character-set=utf8
或是编译时加上参数:./configure --width-charset=utf8
查看字符集和校对规则:
show variables like 'character_set_server';
show variables like 'collation_server';数据库级:
查看字符集和校对规则:
show variables like 'character_set_database';
show variables like 'collation_database';表级:
查看字符集和校对规则:
show create table t \G四、简单修改字符集
简单修改只对以后的数据有影响,如果数据库中没有数据或是不想修改以前的数据,可以使用简单修改。
简单修改命令:
alter database character set utf8;
alter table t character set utf8;
个人推荐在创建数据库时明确指定字符集和校对规则,避免受到默认值的影响。
创建数据库时指定:
create database databasename default charset GBK;
创建数据表时指定:
create table tablename(
....
) ENGIND=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;五、完全修改字符集
当数据库中已有数据,想修改数据集,不能通过简单的修改字符集完成,需要先将原数据导出,经过适当调整后重新导入才可完成。
通过七步完成字符集的完全修改(假设原字符集是latin1,想修改成GBK)。
1、导出表结构:
mysqldump -uroot -p --default-character-set=GBK -d databasename>createdb.sql
说明:
--default-character-set=GBK 表示设置以什么字符集连接;
-d 表示只导出表结构,不导出数据。
2、手工修改createdb.sql中表结构定义中的字符集(latin1)为新的字符集(GBK);
3、确保数据库中的数据不再更新,导出所有的数据:
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename>data.sql
说明:
--quick 该选项用于转储大的表,它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行,并在输出前将它缓存到内存中;
--extended-insert 使用包括几个values的多行insert语法;
--no-create-info 不要create table语句;
--default-character-set=latin1 表示按照原有的字符集导出所有的数据。
4、打开data.sql,将set names latin1修改成set names GBK;
5、使用新的字符集创建数据库:
create database databasename default charset GBK;
6、创建表:
mysql -uroot -p databasename < createdb.sql
7、导入数据:
mysql -uroot -p databasename < data.sql六、最后
建议服务器的字符集参数不要修改,而是是创建数据库进加上字符集,特别是在创建表时记得加上,这样做的目的是为了使修改的影响最小化。