数据库字符编码和界面文本输入框字数限制问题
来源:互联网 发布:怎样评价张作霖 知乎 编辑:程序博客网 时间:2024/05/16 12:05
作者:Maverick
blog:http://blog.csdn.net/zhaohuabing 转载请注明出处
在工作中遇到一个问题,有一个字段在oracle数据库中长度限制为2000,该字段可以从用户界面输入,因此需要进行限制输入框的输入字符数,保证符合oracle数据库中该字段的长度限制。经过测试发现,输入英文字符可以输入2000个,输入中文字符可以输入666个,如果中英文混合输入,只能输入666到2000之间,如果输入的字符数目超过上述的限制,将报数据库输入字段超长的错误。 原因应该是oracle采用了UTF-8的编码格式,该编码格式中英文占一个字符,中文占三个字符,在界面中可以这样限制输入: 利用String.getBytes("UTF-8")可以得到输入字符的字节大小
在工作中遇到一个问题,有一个字段在oracle数据库中长度限制为2000,该字段可以从用户界面输入,因此需要进行限制输入框的输入字符数,保证符合oracle数据库中该字段的长度限制。经过测试发现,输入英文字符可以输入2000个,输入中文字符可以输入666个,如果中英文混合输入,只能输入666到2000之间,如果输入的字符数目超过上述的限制,将报数据库输入字段超长的错误。 原因应该是oracle采用了UTF-8的编码格式,该编码格式中英文占一个字符,中文占三个字符,在界面中可以这样限制输入: 利用String.getBytes("UTF-8")可以得到输入字符的字节大小
class LimitedDocument extends PlainDocument
{
/**
* 插入字符
* @param offs 输入的字符在textField中的偏移量
* @param str 当前输入的字符串
* @param a
* @throws BadLocationException
*/
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
{
if (str.getBytes("UTF-8").length > 2000)
{
Toolkit.getDefaultToolkit().beep();
}
else
{
super.insertString(offs, str, a);
}
}
}
JTextArea limitedTextArea = new JTextArea();
limitedTextArea.setDocument(new LimitedDocument());
- 数据库字符编码和界面文本输入框字数限制问题
- 文本输入框限制字数
- 文本输入框计算和限制输入字数
- 文本输入框,限制输入字数
- javascript限制和统计文本输入字数的解决方案
- 输入框字数限制
- 输入框字数限制+动态提示:10个汉字或20个字符的问题
- 实现文本域输入字数的限制
- js限制输入框字数
- textarea 输入框限制字数
- iOS 输入框字数限制
- js限制输入框字数
- android editText输入文本框限制输入字数和字数提示
- jQuery 高级表单之 ---- jQuery实现简单限制文本输入框的输入字数
- 限制文本输入框textarea最大输入字符的js
- 限制文本输入框textarea最大输入字符的js
- 关于textView中富文本输入字数限制(中文和表情)
- 自动显示文本输入剩余字数,并限制文本输入字数
- 过几天回家落
- 产品中某些地方真TMD的烂
- 蠕虫维金/Worm.Viking.cx正通过QQ尾巴传播
- AOP入门的简单例子(Spring AOP实现)
- 初学VC+数据库的总结
- 数据库字符编码和界面文本输入框字数限制问题
- 查看某个对象在哪些库中存在
- 日本和历日期转换
- js代码触发事件 函数列表
- 关于一个多线程、断点续传的FTP服务程序!
- ASP.NET 2.0中将 GridView 导出到 Excel 文件中
- 作为一个程序员的角色看开发测试与需求的交互
- 提高Eclipse速度的一些小技巧
- 行政区划程序的设计(四)