• 售前

  • 售后

热门帖子
入门百科

MySQL存储全角字符和半角字符的区别

[复制链接]
秋天一且 显示全部楼层 发表于 2021-10-25 19:30:53 |阅读模式 打印 上一主题 下一主题
很不巧公司内测IM的时候又遇到MYSQL_DATA_TRUNCATED错误,日志记录还是在mysql_stmt_fetch调用的时候出现的。鉴于之前的履历,应该是给定的效果集绑定地区长度不够造成的,反复查抄了很多多少遍没发现标题。我在代码中都是对应的关系,好比char(20),我代码中就会界说char buffer[20]数组来存储。看起来云云的正确完善。背面没办法只好打印每一行的数据,找到报错的那一行记录,发现字体和别的不一样。好比:
123456789(半角)
123456789(全角)

这并不是我输入空格控制的,而是输入法全角半角控制的。对于全角字符,它是半角字符长度的两倍,而我的MySQL利用了utf-8,以是在数据库中那就是一个全角字符长度是3个字节。
  1. select length(column) from table_name where…;
复制代码
用这个来打印长度就可以判断出来。这个时候你就要思量一个代码中范例的长度和数据库字段长度匹配的标题了,好比全角字符大概中笔墨符。数据库中的char(20)代表的是20个字符,而不是20个字节,这里要注意,以是取数据的时候万万不要全部利用这个20来做效果集长度来取数据。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作