1. 程式人生 > >ORACLE 中漢字佔幾個位元組?

ORACLE 中漢字佔幾個位元組?

一直認為中文再oracle中也是佔用兩個字元(一個字元佔用一個位元組),寫pl/sql的時候報緩衝區溢位,被同事糾正,一個漢字不止佔用2個位元組,根據引數的不同,可能佔用多個(2~4個)。

可以用下面的sql:

SELECT * FROM v$nls_parameters WHERE PARAMETER='NLS_CHARACTERSET';

可以查詢到當前資料庫的字符集,如果value=ZHS16GBK,那麼一個漢字佔用2個位元組,如果value=AL32UTF8,那麼一個漢字佔用3個位元組。

查佔用字元的:

 SELECT  LENGTH('中國') FROM DUAL;

查漢字佔用多少位元組:

 SELECT  LENGTH('中國') FROM DUAL;

相關推薦

ORACLE 漢字位元組

一直認為中文再oracle中也是佔用兩個字元(一個字元佔用一個位元組),寫pl/sql的時候報緩衝區溢位,被同事糾正,一個漢字不止佔用2個位元組,根據引數的不同,可能佔用多個(2~4個)。 可以用下面的sql: SELECT * FROM v$nls_par

utf-8 的一個漢字位元組

utf-8 中的一個漢字佔幾個位元組 佔 2 個位元組的:〇 佔 3 個位元組的:基本等同於 GBK,含 21000 多個漢字 佔 4 個位元組的:中日韓超大字符集裡面的漢字,有 5 萬多個 1 個 utf8 數字佔 1 個位元組 1 個 utf8 英文字母佔 1 個位元

一個漢字位元組

一個漢字佔幾個字元/位元組? 2個,還是3個字元呢? 其實一個漢字可能會佔2~4個字元,佔幾個字元取決於你採用的什麼編碼。漢字在GBK/GB2312編碼中佔2個位元組,在UTF-8/unicode中一般佔用3個位元組(或2~4位元組)。 暫時

關於Oracle一個漢字代表位元組的問題

在Oracle定義變數時,常有VARCHAR2 (3 Char)或者VARCHAR2 (10 Byte)的資料型別,那麼3char或者10Byte到底代表幾個漢字,幾個字元呢,上次外公司一同事討論這個問題,一下沒給解釋清楚,所以下來以後整理如下: 總結: 當NLS_CHAR

c++ 指標位元組

通過一段程式碼進行測試: #include<iostream> #include<cstdlib> using namespace std; int main() { int a = 1; int *p1 = &a; cout <

Java一個漢字位元組(詳解與原理)

1、先說重點: 不同的編碼格式佔位元組數是不同的,UTF-8編碼下一個中文所佔位元組也是不確定的,可能是2個、3個、4個位元組; 2、以下是原始碼: 1 @Test 2 public void test1() throws UnsupportedEncodingE

char、short、long、double位元組,32位機

char佔1位元組,short佔 2 位元組,int 、float、long 都佔 4 位元組,double 佔8 位元組 指標長度和地址匯流排有關。因為指標記錄的就是一個地址,那麼32位的就是4位元組,64位的就是8位元組。 發現一個問題,以下程式碼是在win10 64位系統下跑的

Java的boolean型別位元組

java基本型別中,boolean只有兩種狀態; 預設值為false。取值範圍是{true,false}; 理論上佔1bit,實際上: 1.單個的boolean型別變數在編譯的時候是使用的int型別; boolean a = true;//這個a在JVM中佔用4各位元

Java語言一個字元位元組

要區分清楚內碼(internal encoding)和外碼(external encoding)就好了。 內碼是程式內部使用的字元編碼,特別是某種語言實現其char或String型別在記憶體裡用的內部編碼; 外碼是程式與外部互動時外部使用的字元編碼。“外部”相對“內部”而言;不是char或Str

mysql和oracle的一個漢字字元

以前一直使用oracle11g,一個漢字佔3個位元組,所以在操作mysql時也一直這樣分配長度。 今天測試了下發現不對了 可以看到第一個的長度確實是15,但是第二個為什麼是5? 在網上找到資料:c

淺談C++的string 型別位元組

#include <iostream> using namespace std; int main(void) {  string str_test1;  string str_test2 = "Hello World";  int value1, value2, value3;  v

Java 一個數字、字母、漢字位元組

漢字字元 2位元組 英文字元 1位元組 中文標點 2位元組 英文標點 1位元組 中國字比較複雜,1位元組=8位,8位從0000 0000到1111 1111只能表示256個字元,2個位元組是2*8=16位,從0000 0000 0000 0000到1111 11

java的char位元組

  1:“位元組”是byte,“位”是bit ;   2: 1 byte = 8 bit ;   char 在java中是2個位元組。java採用unicode,2個位元組(16位)來表示一個字元。   例子程式碼如下: public class Test { p

Javachar是unicode 位元組呢?

1:“位元組”是byte,“位”是bit ;   2: 1 byte = 8 bit ;   char 在java中是2個位元組。java採用unicode,2個位元組(16位)來表示一個字元。 例子程式碼如下: [java] view plaincopyprin

php位元組擷取字串方法,(漢字位元組,字母一個位元組,頁面編碼必須為utf-8)

function esub($str, $length = 0) { if($length < 1){ return $str; } //計算字串長度 $strlen = (strlen($str) + mb_str

int位元組

class Program19 { static void Main(string[] args) { // true,或false Console.WriteLine("bool佔用:" + sizeof(bool

Javachar佔用位元組

在討論這個問題之前,我們需要先區分unicode和UTF。 unicode :統一的字元編號,僅僅提供字元與編號間對映。符號數量在不斷增加,已超百萬。詳細:[https://zh.wikipedia.org/zh-cn/Unicode] UTF :unicode轉

int型別究竟位元組

最近在看深入理解計算機系統這本書,上面提到了在32位機器和64機器中int型別都佔用4個位元組。後來,查了The C Programming language這本書,裡面有一句話是這樣的:Each compiler is free to choose appropriate sizes for it

中文漢字位元組還是三位元組長度

英文字母和中文漢字在不同字符集編碼下的位元組數 英文字母: 位元組數 : 1;編碼:GB2312 位元組數 : 1;編碼:GBK 位元組數 : 1;編碼:GB18030 位元組數 : 1;編碼:ISO-8859-1 位元組數 : 1;編碼:UTF-8 位元組數

一個字元位元組

ASCII碼:   一個英文字母(不分大小寫)佔一個位元組的空間,一箇中文漢字佔兩個位元組的空間。一個二進位制數字序列,在計算機中作為一個數字單元,一般為8位二進位制數,換算為十進位制。最小值0,最大值255。如一個ASCII碼就是一個位元組。 UTF-8編碼:   一個英文字元等於一個位元