免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 19282 | 回复: 9
打印 上一主题 下一主题

mysql utf8_bin与utf8_general_ci [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-15 10:37 |只看该作者 |倒序浏览
如题,

utf8_bin与utf8_general_ci 这两个有什么区别

从windows的数据库里导出数据,再导入linux的mysql

  `name` varchar(255) character set utf8 collate utf8_bin default NULL,
默认是上面这种语句,
看了一下数据库的默认支持,是utf8_general_ci

但是在页面以unicode方式传入的中文字符插入表时,就会出现乱码。

不知何故,请帮忙!

论坛徽章:
0
2 [报告]
发表于 2008-02-15 11:01 |只看该作者
校对规则一般有这些特征:

·         两个不同的字符集不能有相同的校对规则。

·         每个字符集有一个默认校对规则。例如,latin1默认校对规则是latin1_swedish_ci。

·         存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。


utf8_bin与utf8_general_ci使用相同的字符集,不会乱码。

乱码肯定有其他原因,具体太复杂,搜搜老帖吧。

论坛徽章:
0
3 [报告]
发表于 2008-02-15 11:05 |只看该作者
谢谢指教,用是的jsp,具体程序不是俺在写,我觉得数据库没问题,但还是要查一下倒底啥问题!

论坛徽章:
0
4 [报告]
发表于 2008-02-15 11:23 |只看该作者
不知道有没有人知道呢,因为测试过,程序只在一台机器上,连接不同的数据库,windows的是ok的,而linux 下的就会乱码。。。。很奇怪

论坛徽章:
0
5 [报告]
发表于 2008-02-15 11:52 |只看该作者
这个只是排序规则不同而已 。

论坛徽章:
0
6 [报告]
发表于 2008-02-15 13:14 |只看该作者
在数据库里加了一个default-character-set = utf8 ,就好了!

论坛徽章:
0
7 [报告]
发表于 2008-02-15 13:40 |只看该作者
MySQL 目前为止默认使用的是Latin1字符集

为了是程序在转移平台或数据库的时候不至于出现乱码,在设计数据库的时候需要制定字符集,比如utf8

还有在程序连接初始化的时候query 'SET NAMES UTF8'  这样就不会出现乱码问题了

论坛徽章:
0
8 [报告]
发表于 2008-02-15 14:26 |只看该作者
嗯,一般的,我认识如果数据库创建表时设置了default charset的话,而且创建数据库时也是有加的,就会是哪种,往常没碰到过这种问题。

论坛徽章:
0
9 [报告]
发表于 2010-04-22 19:50 |只看该作者
你这个问题我刚遇到过,虽然不太一样,但我觉得也是图形界面与命令行界面的原因吧!我把编码格式都用utf8_bin,这样在数据导出后,均是二进制数,再通过命令行界面导入就不会出现乱码了,呵呵

论坛徽章:
0
10 [报告]
发表于 2010-05-11 11:53 |只看该作者
指的是排序规则,前者是按照二进制排序,后者是按照普通的字母顺序,而且不区分大小写。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP