|||
NLS : national language support
单字节编码方案:
7-bit:ASCII 可以定义128个字符,仅支持英语一种语言
8-bit:ISO8859-1 可以定义256个字符,仅支持西欧语言
以上并不支持亚洲语言
多字节编码:对亚洲非洲语言的支持
定长多字节编码:至少两个byte字节表示字符,oracle唯一支持的定长多字节编码AF16utf-16
变长多字节编码:
用一个或多个字节表示一个字符,适用于日语,汉语,印度语
AL32UTF8 AL代表all,zhs16cgb231280用于简体中文 zht表示对繁体中文的支持
提醒一点,使用控制码区分单字节和多字节字符的编码
命名约定
US7ASCII 美国7位编码
WE8ISO8859P1 西欧 ISO8859 Part1
AL32UTF8 unicode5.0支持所有的字符 universal character set 32位
JA16SJIS 日本16位
数据库需要支持那些语言,未来需要支持那些语言,操作系统支持哪些语言,客户机需要支持那些语言,客户机程序支持那些语言?
修改字符集:AlTER DATABASE CHARACTER SET 数据库新字符集是当前字符集的超集
字符集转化:缺点:数据丢失,增加开销。
convert函数 字符串从一种转为另一种 convert('adsf','us7ASCII','we88ISO8859p1')
需要确认所有的数据是否在目标字符集中有替代字符,看看两者是否兼容
因此,为避免这个问题,应该通过convert函数进行测试,或者使用实用工具csscan对数据库进行扫描,发现潜在的问题,以防止转换而丢失数据。
没有限制的多语言支持:
两种常用的编码方案:
UCS-2:定长,2字节,不支持扩充字符,用于java和微软
utf16:每个字符是2或4字节,用于microsoft windows 2000
utf8:每个字符是1到4个字节存储。可变长的字符编码。ASC应该是1个字节,大部分汉字是3个字节。用于html
nchar列存储unicode字符。
全球化支持环境
服务器初始化参数:
NLS_TERRITORY="AMERICA"
客户端环境变量
setenv NLS_LANGUAGE=AMERICAN
export NLS_LANGUAGE=AMERICAN
使用ALTER SESSION语句
alter session set nls_language=AMERICAN;
在SQL函数中,TO_CHAR(hiredate,'DD/MON/YYYY','nls_date_language=AMERICAN'
优先级:
1.SQL函数
2.alter session
3.客户端环境变量
4.初始化参数
5.环境设置
NLS_language =AMERICAN
NLS_TERRITORY=AMERICA 注:地区优先于语言,一般会根据地区显示相应字符
'L99G999D99' 24.000,00(德国小数点是“,”)
数字分隔符 小数点
爱沙尼亚 空格 ,
德国 . ,
日本,英国,美国 , .
所有的简体中文字符集都是US7ASCII的超集
常见的 ZHS16CHB231280
ZHS16GBK
ZHS32GB18030
GB2312 又称GB2312-80字符集,汉字编码字符集,由国家标准总局发布。收录99.75%的汉字
特征:分区表示
双字节表示
GBK:国标扩展码,与GB2312编码兼容,可以看做是扩展,向上支持ISO10646.1,与unicode编码完全兼容。GB13000.1等同ISO10646.1,并且包含了big5编码的所有汉字。
GB18030:2001年执行,信息技术编码字符集,包括少数民族文字。收录汉字70000个。包括双字节部分和四字节部分。双字节部分就是GBK的21003个汉字。
全面兼容GB2312,词汇上兼容GB13000.1
oracle通过zhs32gb18030和al32utf8或utf8支持gb18030-2000标准。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-6-3 22:06
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社