UTF-8字符集 一个汉字几个字节?

[复制链接]
查看11 | 回复9 | 2010-3-1 11:06:13 | 显示全部楼层 |阅读模式
我验证的是两个,
SQL> select value as chartset from nls_database_parameters where parameter='NLS_CHARACTERSET';
CHARTSET
--------------------------------------------------------------------------------
UTF8
SQL> create table t1(col varchar2(2));
Table created.
SQL> insert into t1 values('a');
1 row created.
SQL> commit;
Commit complete.
SQL> select length(col) from t1;
LENGTH(COL)
-----------
1
SQL> select lengthb(col) from t1;
LENGTHB(COL)
------------
1
SQL> select lengthc(col) from t1;
LENGTHC(COL)
------------
1
.


-------------------------------------------------
SQL> insert into t1 values('中');
1 row created.
SQL> commit;
Commit complete.
SQL> select length(col) from t1;
LENGTH(COL)
-----------
1
SQL> select lengthb(col) from t1;
LENGTHB(COL)
------------
2
SQL> select lengthc(col) from t1;
LENGTHC(COL)
------------
1
SQL> delete from t1;
1 row deleted.
SQL> commit;
Commit complete.
SQL> insert into t1 values('中a');
insert into t1 values('中a')

*
ERROR at line 1:
ORA-12899: value too large for column "SYS"."T1"."COL" (actual: 3, maximum: 2)
SQL> drop table t1;
Table dropped.



回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
UTF-8是UNICODE的一种变长字符编码
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
基本3
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
是不定长的?
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
3到4个字节
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
3个字节吧,我们的库就是3个
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
一般是3,没注意过还有4的
回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
基本上是3个 我们的生产库就是3个

回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
本帖最后由 JackolWu 于 2012-1-10 17:22 编辑
3-4是根据什么来的呢?
通过length和lengthb函数执行相关查询发现是2个,还与其他因素有关吗?
求详解。
OS:XP
DB Version:10205

回复

使用道具 举报

千问 | 2010-3-1 11:06:13 | 显示全部楼层
dump
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行