`
wsql
  • 浏览: 12098604 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

字符集问题的初步探讨(二)

阅读更多

字符集问题的初步探讨(二)

--数据库的字符集

<!-- #BeginDate format:wfcIS1m -->Saturday, 2004-09-11 11:38<!-- #EndDate --> Eygle

<!--DWLayoutEmptyCell-->
原文发表于itpub技术丛书《Oracle数据库DBA专题技术精粹》,未经许可,严禁转载本文.

原文链接:

http://www.eygle.com/special/NLS_CHARACTER_SET_02.htm


2. 数据库的字符集

字符集在创建数据库时指定,在创建后通常不能更改,所以在创建数据库时能否选择一个正确的字符集就显得尤为重要。

在创建数据库时,我们可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。
字符集用来存储:
CHAR, VARCHAR2, CLOB, LONG等类型数据
用来标示诸如表名、列名以及PL/SQL变量等
SQL和PL/SQL程序单元等
国家字符集用以存储:
NCHAR, NVARCHAR2, NCLOB等类型数据

这些设置在数据库创建时指定,我们可以看一下数据库的创建脚本:


connect SYS/change_on_install as SYSDBA
set echo on
spool E:\oracle\ora92\assistants\dbca\logs\CreateDB.log
startup nomount pfile="E:\oracle\admin\eygle\scripts\init.ora";
CREATE DATABASE eygle
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE 'E:\oracle\oradata\eygle\system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'E:\oracle\oradata\eygle\temp01.dbf' SIZE 40M REUSE AUTOEXTEND
ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS1" DATAFILE 'E:\oracle\oradata\eygle\undotbs01.dbf' SIZE 50M REUSE AUTOEXTEND
ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1 ('E:\oracle\oradata\eygle\redo01.log') SIZE 10M,
GROUP 2 ('E:\oracle\oradata\eygle\redo02.log') SIZE 10M,
GROUP 3 ('E:\oracle\oradata\eygle\redo03.log') SIZE 10M;
spool off
exit;


以上用粗体显示的就是对我们至关重要的字符集设置。

在创建数据库的过程中,在以下界面选择你的字符集,对于简体中文平台,缺省的字符集是:ZHS16GBK

一旦你的字符集选定了,数据库中能够存储的字符就受到了限制,所以你选择的字符集的应该可以容纳所有你将用到字符。

常见的中文字符集有:

ZHS16CGB231280 	CGB2312-80 	16-bit Simplified Chinese MB, ASCII
ZHS16GBK GBK 16-bit Simplified Chinese MB, ASCII, UDC

其中GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,
1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。
GBK编码是1995年12月颁布的指导性规范。
GBK与国家标准 GB 2312-80 信息处理交换码所对应的、事实上的内码标准兼容;同时,在字汇一级支持 ISO/IEC 10646-1 和
GB 13000-1 的全部中日韩 (CJK) 汉字(20902字)。包含了更多的编码。

但是我们说,ZHS16GBK 并非是ZHS16CGB231280的严格超集(虽然后者的汉字在前者中都存在,但是同样的编码在不同两个
字符集中可能表达不同的汉字),所以在做数据库字符转换时仍然需要特别注意。

Oracle的字符集命名遵循以下命名规则:

     <Language><bit size><encoding>
即: <语言> <比特位数><编码>
比如: ZHS · 16 ·GBK

需要说明的是,有些字符集命名违背了这个规范,Oracle8/Oralce8i中的UTF-8是第一个打破这个命名规范的字符集。
我们可以看到一类字符集以 AL开头,如:
AL16UTF16
其中 AL代表 ALL,指适用于所有语言(All Languages),按照这个标准当年UTF-8本应被命名为AL24UTF8。

分享到:
评论

相关推荐

    oracle 一点资料

    最后,"修改props$中字符集的恢复 - fengjin821的个人空间 - ITPUB个人空间 - powered by X-Space_files"和"字符集问题的初步探讨(三)-字符集的更改 - Oracle Life_files"可能是原始网页的资源文件夹,包含了图片、...

    Oracle查看编码格式

    - 比如,在支持中文、英文等多种语言的应用程序中,使用Unicode字符集(如UTF8)可以避免乱码问题。 **3. 性能优化:** - 不同的字符集可能会对数据库性能产生影响,特别是在处理大量文本数据时。 - 选择合适的...

    基于Matlab的字符识别

    本文将深入探讨基于Matlab的字符识别技术,以及如何通过连通域分析实现图像中的字母识别。 首先,我们要理解“字符识别”这一概念。字符识别是人工智能的一个分支,主要目标是让计算机系统能够识别并理解图像或文本...

    jsp中文问题解决方案.pdf

    这样可以避免因不同环节采用不同字符集而导致的乱码问题。 2. **配置JSP页面**:在JSP页面头部明确声明字符集,例如`;charset=UTF-8" %&gt;`。 3. **数据库配置**:根据实际情况调整数据库的字符集设置,确保与前端页面...

    形式语言与自动机:第十三讲 计算理论初步.pdf

    具体来说,每个图灵机可以用一个唯一的整数(其二进制编码)来表示,对角语言由那些不在对应图灵机接受集内的字符串组成。例如,第 i 个图灵机 Mi 的对角语言 Ld 包含了所有不属于 Mi 接受集的、编码为 wi 的字符串...

    字符串转换为ascii值的函数

    在Delphi编程环境中,ASCII值是字符编码的一种标准表示方式,每一个可打印的字符都有一个特定的ASCII值,这个值范围从0到127(对于标准的7位ASCII字符集)。例如,字母'A'的ASCII值是65,而'a'的ASCII值是97。 ### ...

    形式语言与自动机:第十三讲 计算理论初步

    2. **图灵机与输入串的二进制编码**:为了便于分析和讨论,图灵机通常被简化,如使用{0,1}作为输入字母表,有限状态集简化为q1, q2,..., qk,以及特定的带符号和移动方向。图灵机的转移规则可以用二进制编码表示,...

    国家集训队2015-2018论文集.zip

    人工智能的初步探讨,如机器学习和深度学习,也在这年的论文中有所体现。 2017年国家集训队论文集: 这一年,集训队的焦点扩展到了分布式计算和并行算法。学生们分析了P、NP和NPC问题,以及如何设计高效的分布式...

    哈曼树的应用

    下面,我们将深入探讨哈夫曼树的应用原理及其在实际项目中的实现步骤。 ### 哈夫曼树的构建与应用 #### 构建原理 哈夫曼树的构建基于最小生成树的概念,其核心思想是在给定一组字符及其出现频率的情况下,构建一颗...

    IOI国家集训队论文集1999-2019

    许智磊 -《浅谈补集转化思想在统计问题中的应用》 张 宁 -《猜数问题的研究》 张云亮 -《论对算法的选择》 周 源 -《浅析"最小表示法"思想在字符串循环同构问题中的应用》 ## 2004 何 林 -《信息学中守恒法...

    Python 3 实现图片转彩色字符-内含源码以及设计说明书(可以自己运行复现).zip

    在本项目中,我们将探讨如何使用Python 3将图片转换为彩色字符的实现。这个过程涉及到计算机图形学、...通过实践这个项目,开发者可以深化对Python库的理解,提升解决问题的能力,并在乐趣中学习计算机视觉的初步知识。

    video2chars.zip

    - **字符集自定义**:除了预设的字符集,用户还可以自定义字符集,以达到更个性化的视觉效果。 - **输出尺寸**:程序允许用户设置输出字符画的宽度和高度,以适应不同的展示需求。 4. **代码结构**: - **main....

    VS2017下PBNI环境搭建及初步使用

    - 将“字符集”设为“使用 Unicode 字符集”(也可以选择多字节方式)。 - 在“C/C++”-&gt;“常规”中,修改“附加包含目录”,添加路径 `%PBNISDK170%\include`。 #### 四、PBNI 应用实例 假设我们需要实现一个 ...

    TCL编程初步

    本章详细讲解了正则表达式的语法,包括匹配字符、限定匹配、字符集、量词、子模式、匹配优先级等概念。同时,也介绍了高级正则表达式(AREs)和相关语法。 第10章讲述了名字空间的概念。在TCL中,名字空间用于创建...

    kettle常见控件(输入、输出,字段选择、设置变量、记录集连接、值映射、字符串替换、js、Java)的使用案例

    本教程将深入探讨Kettle中的一些关键控件,以及如何在实际项目中应用它们。 1. 输入控件: - **数据库输入**:Kettle提供了多种方式从数据库中抽取数据,如"数据库输入"步骤,可以配置SQL查询来提取所需记录。通过...

    全国计算机二级C语言上机考试题库(可直接打印).pdf

    总之,全国计算机二级C语言上机考试题库不仅仅是一套习题集,它更是一个帮助考生提升编程技能、加深对计算机技术理解的有力工具。在使用题库进行备考时,考生应当注重每一个细节,理解每一个概念,从而在考试中取得...

    基于深度学习的字符识别工程文件

    在本项目中,我们主要探讨的是“基于深度学习的字符识别工程文件”,这涉及到一系列的机器学习和深度学习技术,特别是在计算机视觉领域的应用。以下是该项目的详细知识点: 1. **深度学习基础**:深度学习是一种...

    XML初步到精通

    在本教程“XML初步到精通”中,我们将深入探讨XML的基础概念、语法以及它在IT领域的广泛应用。 一、XML简介 XML起源于1998年,由万维网联盟(W3C)制定,它是一种可扩展的标记语言,旨在提供一种结构化的方式来组织...

    ARM嵌入式系统实验教程(二)

    《ARM嵌入式系统实验教程(二)》是一本深入探讨ARM架构下嵌入式系统的实践教程,主要针对想要在嵌入式领域进行深入学习和实践的读者。本书分为六个章节,逐步引导读者掌握ARM处理器及其在Linux环境下的应用。 第一...

    变量4-数据集.zip

    在本例中,"数据集.dat"很可能是以二进制或文本格式存储的数据文件,用于存储大量的数值、字符串或其他类型的信息。这种文件通常需要特定的程序或库来读取和解析,以便在分析中使用。 配合博客文章使用这一数据集,...

Global site tag (gtag.js) - Google Analytics