Oracle中存中文时的字数问题
来源:互联网 发布:购买域名后如何建站 编辑:程序博客网 时间:2024/06/14 22:04
一次遇到了这样一个问题:有张表的“description”字段允许用户最多输入2000字,页面上当用户提交时需要用js检查字数是否超过2000。测试时发现eclipse控制台老报类似“值太大(实际值:xx,最大值:xx)”这样的错。于是,抽空专门深究了下这个问题。
- Oracle中表的字段类型如果是varchar2类型,则最大不允许超过4000字节
- Oracle中表的字段类型可以定义成以下两种形式:
1:description varchar2(2000) -- 表示该字段最大允许放2000字节的内容
2:description varchar2(2000 char) -- 表示该字段最大允许放2000个字符
一个中文字符或者一个英文字符都算一个字符,但是一个中文字符和一个英文字符所占的字节数就不一定一样了。当数据库的字符集设为UTF-8时,就杯具了,此时一个英文字符是占1字节,而中文字符是占3(或者4)个字节,此时如果输2000个中文,虽然慢足“最大允许放2000个字符”,但是占了6000字节(2000字 X 3字节/字)超过了4000字节的极限了。
解决办法:如果可以的话就把数据库的字符集修改成ZHS16GBK等中文字符集吧,此时不管中文字符还是英文字符都是2字节了,再把description的类型改为varchar2(4000)或varchar2(2000 char)都行。
- Oracle中存中文时的字数问题
- iOS开发中,textview中文输入有联想的时候,字数限制问题
- 向cookie中存中文乱码问题
- ajax中出现中文乱码和缓存的问题的解决方法
- cookie中存中文
- oracle中varchar2(20)中存储中文的问题
- android中关于textview字数显示的问题
- iOS中UITextField的字数限制 emoji被截断问题
- PHP 中如何正确统计中文字数
- PHP 中如何自动计算中文字数?
- PHP 中如何正确统计中文字数
- PHP 中正确统计中文字数
- 虚拟机中LINUX环境的oracle中文乱码的问题
- 解决Python中读Oracle数据库的中文编码问题
- oracle中查询中文字段查询不出的问题
- cookie不能存中文问题
- hive metadata 存mysql 注释中文乱码的问题
- iOS开发中输入框的英文和中文的字数限制
- Android OpenGL ES:通用的矩阵变换指令
- kmp算法模板
- C\C++ 关于FILE结构定义说明
- ARM裸机程序研究 - 编译和链接
- Linux 目录中的etc是什么缩写
- Oracle中存中文时的字数问题
- javascript基础之表达式和运算符
- It's smarter to travel in group
- linux目录和命令英文缩写
- xml学习(1)---12.1
- 程序员的情书
- cocos2dx安装索引
- ACdream群原创群赛(4)
- SDRAM的自动刷新AS(Auto Refresh)和自刷新SR(Self Refresh)