MySQL基本函数的使用中,关于汉字长度有些小疑问。

MySQL基本函数的使用中,关于汉字长度有些小疑问。

定义表的时候讲,比如VARCHAR(1)中的1为1个字符,

使用函数的时候讲,LENGTH(1个汉字)为3个字节,

那么VARCHAR(1)的1个字符所对应的就是3个字节喽?也就是汉字可以写1个,英文可以写3个?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,在不同的编码下,一个字符对应的字节是不同的,比如

英文字母在GBK的编码下一个字符对应一个字节,在UTF-8下,一个字符对应一个字节,在UFT-16编码下,一个字符对应4个字节。

汉字在GBK编码下一个字符对应2个字节,在UTF-8下,一个字符对应3个字节,在UFT-16编码下,一个字符对应4个字节。

如上所示,是不同编码下内容的解析,并不是所有都是一个字符对应3个字节。

祝学习愉快~

  • 童真模式启动 提问者 #1

    这UTF-8的1个字表示汉字对应3个字节,那表示字母是不是空了2个?

    还有啊,意思是这个VARCHAR是自适应的吗,用GBK就定义汉字VARCHAR(1)实际2个字节,UTF-8就定义汉字VARCHAR(1)实际3个字节?


    2021-08-10 10:26:45
  • 同学你好,1、这里括号内的数仅仅规定了显示的宽度,并不是限定数据类型的范围。

        ​2、 这里VARCHAR是自适应的,会根据实际数据给予对应的空间长度。

    祝学习愉快~

    2021-08-10 11:25:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师