Oracle-一个中文汉字占几个字节?
?
Oracle 一個中文漢字占用幾個字節(jié)
Oracle?一個中文漢字 占用幾個字節(jié),要根據(jù)Oracle中字符集編碼決定!!!
?
1. 如果定義為VARCHAR2(32 CHAR),那么該列最多就可以存儲32個漢字,如果定義字段為VARCHAR2(32) 或VARCHAR2(32 BYTE)那么它最多可以存儲多少個漢字就要視數(shù)據(jù)庫字符集編碼決定
?***************************************************************
2.ORACLE數(shù)據(jù)庫中文可以存儲字節(jié)或字符,例如 CHAR(32 BYTE) CHAR(32 CHAR)的意義是不同的.一般來說默認是存儲字節(jié),你可以查看數(shù)據(jù)庫參數(shù)NLS_LENGTH_SEMANTICS的值
?***************************************************************
SQL> show parameter nls_length_semantics;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_length_semantics string BYTE
?
select userenv('language') from dual;
?
SIMPLIFIED CHINESE_CHINA.ZHS16GBK ? ? : ??一個漢字占用兩個字節(jié)
SIMPLIFIED CHINESE_CHINA.AL32UTF8 ? ? ?: ??一個漢字占用三個字節(jié)
***************************************************************
3. 求的中文占用多少個字符和多少個字節(jié)使用下面的函數(shù).
?
SQL> SELECT LENGTH('您好') FROM DUAL; --LENGTH函數(shù)求得是占用字符數(shù)
LENGTH('您好')
--------------
2
SQL> SELECT LENGTHB('您好') FROM DUAL; --LENGTHB或者VSIZE函數(shù)求得是占用字節(jié)數(shù)
LENGTHB('您好')
---------------
6
***************************************************************
4. ?前臺JS驗證輸入的字符串長度函數(shù)
?
/*** yangw* 字符串長度的統(tǒng)計--中英文的問題*/// 由于Oracle中,一個UTF-8編碼的漢字占 3個字節(jié) GBK編碼的漢字占兩個字節(jié)// 成都農(nóng)商行使用到的數(shù)據(jù)庫編碼是 AL32UTF8---故下面替換為3個avar len= element.value.replace(/[^\x00-\xff]/g,"aaa").length; if(len>length){showError(element, "的長度必須小于等于"+length+'字節(jié),中文占三個字節(jié),其它占1個字節(jié)', hasFrame);return false;}?
?
參考文章:?http://www.cnblogs.com/kerrycode/archive/2013/12/10/3466993.html
? ? ? ? ? ? ? ?http://www.linuxidc.com/Linux/2013-03/81732.htm
?
轉(zhuǎn)載于:https://www.cnblogs.com/yangw/p/5364304.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Oracle-一个中文汉字占几个字节?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 量化框架zipline--分钟回测改写
- 下一篇: AC日记——字符串P型编码 openju