为了账号安全,请及时绑定邮箱和手机立即绑定

mysql字符编码长度问题

/ 猿问

mysql字符编码长度问题

散落了樱花 2018-03-26 18:58:45
GBK中汉字不是应该占两个字节吗?为什么输出不是4?(注:"我的"两个字前面是没有空格的)

https://img3.mukewang.com/5ab8d1b300013ee908180455.jpg

查看完整描述

4 回答

已采纳
?
不知乎

纠结这种问题干嘛,你输入show create table 表名看看是utf8还是gbk,我看大概率是utf8,你查看的是cmd的默认字符编码,但是你进入了MySQL它有自己的字符编码

查看完整回答
1 反对 回复 2018-03-26
  • 不知乎
    不知乎
    楼主,我今天测试了一下,即使设置数据库的编码为gbk或者其他,发现其实和MySQL的字符编码没关系,只要是length(): 一个汉字就是三个字符,一个数字或字母算一个字符。 而char_length(): 不管汉字还是数字或者是字母都算是一个字符。百度可查,亲测。
?
慕码人4524020


select length('哈哈') --6

select CHARACTER_LENGTH('哈哈') --2

查看完整回答
1 反对 回复 2018-03-26
?
qq_Mi_16
在mysql内置函数里面查看字符串长度的还有一个函数是char_length,这两个函数的区别是: length: 一个汉字是算三个字符,一个数字或字母算一个字符。 char_length: 不管汉字还是数字或者是字母都算是一个字符。
查看完整回答
反对 回复 2018-03-27
?
书旅

查看一下你当前数据库的字符编码

查看完整回答
反对 回复 2018-03-27

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信