java.lang.String因为是unicode编码2个字节,数据库的char为一个字节,提交截取怎么办?

Thinkinger 2005-04-05 10:14:51
JAVA里的char类型占2个字节,String类对象的length方法是以2个字节为单位计算的,但数据库的char类型是1个字节,所以会出现数据库截断的问题,请问大家怎么解决?
...全文
385 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
topil 2005-04-06
  • 打赏
  • 举报
回复
我把一个字符串"12345"保存到DB中一个char[5]的字段里面没有问题啊?应该是在向DB中保存之前,要先检查其格式是否合法。
topil 2005-04-06
  • 打赏
  • 举报
回复
关于输入中文的问题,是可以通过getByte来判断,如果输入了中文,那么string.getByte()返回的数组的长度与string.length()是不相等的,通过这点可以来判断
无欲则钢 2005-04-06
  • 打赏
  • 举报
回复
一个字节的数据库能存中文吗?数据库是可以设置的,你设置一下就可以了,不用重新改数据定义。
hongyan2004 2005-04-06
  • 打赏
  • 举报
回复
getBytes可以
kingfish 2005-04-05
  • 打赏
  • 举报
回复
??跟java有什么关系?

检查你的程序吧
Thinkinger 2005-04-05
  • 打赏
  • 举报
回复
倒!不会吧,JAVA这方面太欠缺了吧,为了有足够的空间,我得把数据库列长调整为原来的2倍?!仅仅是为了unicode编码?
kingfish 2005-04-05
  • 打赏
  • 举报
回复
你自己决定怎么办吧

要不就是输入前判断,超长重输
要不就是写库时只写10字节
Thinkinger 2005-04-05
  • 打赏
  • 举报
回复
JDBC不会自己处理这种情况吗?比如,它自动把转码为一个字符!
Thinkinger 2005-04-05
  • 打赏
  • 举报
回复
长度是比较好判断的,问题是,我的textfield里有个10个字符输入,当我把它给一个String类型时,占用10*2=20个字符空间,当我提交到数据库的char(10)时,就会出现字符串被截取的情况,这怎么办?
kingfish 2005-04-05
  • 打赏
  • 举报
回复
String的getBytes()返回的数组的长度就是以字节为单位的.

至于截断, 只要超长就会
Thinkinger 2005-04-05
  • 打赏
  • 举报
回复
楼上的请详细点行不?
kingfish 2005-04-05
  • 打赏
  • 举报
回复
getBytes()

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧