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

Thinkinger 2005-04-05 10:14:51
JAVA里的char类型占2个字节,String类对象的length方法是以2个字节为单位计算的,但数据库的char类型是1个字节,所以会出现数据库截断的问题,请问大家怎么解决?
...全文
433 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()
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)内容概要:本文围绕“基于波长补偿与去雾的水下图像增强方法”展开研究,提出了一种结合波长补偿与去雾算法的水下图像增强技术,并通过Matlab代码实现。该方法针对水下成像中常见的颜色失真、对比度低和模糊等问题,利用波长补偿校正不同波长光在水中的衰减差异,恢复图像色彩,同时引入去雾算法(如暗通道先验或物理模型)提升图像清晰度与细节可见性,从而有效改善水下图像质量。文中可能包含实验对比,验证所提方法在主观视觉效果和客观评价指标上的优越性。; 适合人群:具备一定图像处理基础和Matlab编程能力,从事计算机视觉、海洋工程、水下探测等相关领域的科研人员或研究生。; 使用场景及目标:①用于解决水下机器人、潜水器、海洋监测等实际应用中的图像质量退化问题;②为目标检测、图像识别等后续视觉任务提供高质量输入;③为相关算法研究提供Matlab实现参考与复现基础。; 阅读建议:建议结合Matlab代码逐模块理解算法实现流程,重点关注波长补偿模型的构建与去雾算法的参数调整,通过不同水下图像数据集进行测试与对比,以深入掌握方法的有效性与适用范围。

62,628

社区成员

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

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