原文发表于itpub技术丛书《Oracle数据库DBA专题技术精粹》,未经许可,严禁转载本文.
原文链接:
http://www.eygle.com/special/NLS_CHARACTER_SET_02.htm
字符集在创建数据库时指定,在创建后通常不能更改,所以在创建数据库时能否选择一个正确的字符集就显得尤为重要。
在创建数据库时,我们可以指定字符集(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。
|
相关推荐
最后,"修改props$中字符集的恢复 - fengjin821的个人空间 - ITPUB个人空间 - powered by X-Space_files"和"字符集问题的初步探讨(三)-字符集的更改 - Oracle Life_files"可能是原始网页的资源文件夹,包含了图片、...
- 比如,在支持中文、英文等多种语言的应用程序中,使用Unicode字符集(如UTF8)可以避免乱码问题。 **3. 性能优化:** - 不同的字符集可能会对数据库性能产生影响,特别是在处理大量文本数据时。 - 选择合适的...
本文将深入探讨基于Matlab的字符识别技术,以及如何通过连通域分析实现图像中的字母识别。 首先,我们要理解“字符识别”这一概念。字符识别是人工智能的一个分支,主要目标是让计算机系统能够识别并理解图像或文本...
这样可以避免因不同环节采用不同字符集而导致的乱码问题。 2. **配置JSP页面**:在JSP页面头部明确声明字符集,例如`;charset=UTF-8" %>`。 3. **数据库配置**:根据实际情况调整数据库的字符集设置,确保与前端页面...
具体来说,每个图灵机可以用一个唯一的整数(其二进制编码)来表示,对角语言由那些不在对应图灵机接受集内的字符串组成。例如,第 i 个图灵机 Mi 的对角语言 Ld 包含了所有不属于 Mi 接受集的、编码为 wi 的字符串...
在Delphi编程环境中,ASCII值是字符编码的一种标准表示方式,每一个可打印的字符都有一个特定的ASCII值,这个值范围从0到127(对于标准的7位ASCII字符集)。例如,字母'A'的ASCII值是65,而'a'的ASCII值是97。 ### ...
2. **图灵机与输入串的二进制编码**:为了便于分析和讨论,图灵机通常被简化,如使用{0,1}作为输入字母表,有限状态集简化为q1, q2,..., qk,以及特定的带符号和移动方向。图灵机的转移规则可以用二进制编码表示,...
人工智能的初步探讨,如机器学习和深度学习,也在这年的论文中有所体现。 2017年国家集训队论文集: 这一年,集训队的焦点扩展到了分布式计算和并行算法。学生们分析了P、NP和NPC问题,以及如何设计高效的分布式...
下面,我们将深入探讨哈夫曼树的应用原理及其在实际项目中的实现步骤。 ### 哈夫曼树的构建与应用 #### 构建原理 哈夫曼树的构建基于最小生成树的概念,其核心思想是在给定一组字符及其出现频率的情况下,构建一颗...
许智磊 -《浅谈补集转化思想在统计问题中的应用》 张 宁 -《猜数问题的研究》 张云亮 -《论对算法的选择》 周 源 -《浅析"最小表示法"思想在字符串循环同构问题中的应用》 ## 2004 何 林 -《信息学中守恒法...
在本项目中,我们将探讨如何使用Python 3将图片转换为彩色字符的实现。这个过程涉及到计算机图形学、...通过实践这个项目,开发者可以深化对Python库的理解,提升解决问题的能力,并在乐趣中学习计算机视觉的初步知识。
- **字符集自定义**:除了预设的字符集,用户还可以自定义字符集,以达到更个性化的视觉效果。 - **输出尺寸**:程序允许用户设置输出字符画的宽度和高度,以适应不同的展示需求。 4. **代码结构**: - **main....
- 将“字符集”设为“使用 Unicode 字符集”(也可以选择多字节方式)。 - 在“C/C++”->“常规”中,修改“附加包含目录”,添加路径 `%PBNISDK170%\include`。 #### 四、PBNI 应用实例 假设我们需要实现一个 ...
本章详细讲解了正则表达式的语法,包括匹配字符、限定匹配、字符集、量词、子模式、匹配优先级等概念。同时,也介绍了高级正则表达式(AREs)和相关语法。 第10章讲述了名字空间的概念。在TCL中,名字空间用于创建...
本教程将深入探讨Kettle中的一些关键控件,以及如何在实际项目中应用它们。 1. 输入控件: - **数据库输入**:Kettle提供了多种方式从数据库中抽取数据,如"数据库输入"步骤,可以配置SQL查询来提取所需记录。通过...
总之,全国计算机二级C语言上机考试题库不仅仅是一套习题集,它更是一个帮助考生提升编程技能、加深对计算机技术理解的有力工具。在使用题库进行备考时,考生应当注重每一个细节,理解每一个概念,从而在考试中取得...
在本项目中,我们主要探讨的是“基于深度学习的字符识别工程文件”,这涉及到一系列的机器学习和深度学习技术,特别是在计算机视觉领域的应用。以下是该项目的详细知识点: 1. **深度学习基础**:深度学习是一种...
在本教程“XML初步到精通”中,我们将深入探讨XML的基础概念、语法以及它在IT领域的广泛应用。 一、XML简介 XML起源于1998年,由万维网联盟(W3C)制定,它是一种可扩展的标记语言,旨在提供一种结构化的方式来组织...
《ARM嵌入式系统实验教程(二)》是一本深入探讨ARM架构下嵌入式系统的实践教程,主要针对想要在嵌入式领域进行深入学习和实践的读者。本书分为六个章节,逐步引导读者掌握ARM处理器及其在Linux环境下的应用。 第一...
在本例中,"数据集.dat"很可能是以二进制或文本格式存储的数据文件,用于存储大量的数值、字符串或其他类型的信息。这种文件通常需要特定的程序或库来读取和解析,以便在分析中使用。 配合博客文章使用这一数据集,...