您的位置:首页 > 数据库

数据库字符编码和界面文本输入框字数限制问题

2006-09-26 20:42 281 查看
[align=left]作者:Maverick[/align]
[align=left][/align]
[align=left][/align]
[align=left][/align]
[align=left] blog:http://blog.csdn.net/zhaohuabing  转载请注明出处

在工作中遇到一个问题,有一个字段在oracle数据库中长度限制为2000,该字段可以从用户界面输入,因此需要进行限制输入框的输入字符数,保证符合oracle数据库中该字段的长度限制。经过测试发现,输入英文字符可以输入2000个,输入中文字符可以输入666个,如果中英文混合输入,只能输入666到2000之间,如果输入的字符数目超过上述的限制,将报数据库输入字段超长的错误。 原因应该是oracle采用了UTF-8的编码格式,该编码格式中英文占一个字符,中文占三个字符,在界面中可以这样限制输入: 利用String.getBytes("UTF-8")可以得到输入字符的字节大小 [/align]
    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());

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐