字符集和国家字符集神谕的区别?
发布于 2020-10-19 09:02:41
这在甲骨文的文档中得到了回答:选择字符集
字符集编码 当计算机系统处理字符时,它们使用数字代码而不是字符的图形表示形式。例如,当数据库存储字母A时,它实际上存储了计算机系统将其解释为字母的数字代码。这些数字代码在全局环境中特别重要,因为可能需要在不同字符集之间转换数据。什么是编码字符集? 在创建数据库时指定编码字符集。选择字符集可以确定哪些语言可以在数据库中表示。它还影响到:
一组字符(例如,字母字符、表意文字、符号、标点符号和控制字符)可以编码为字符集。编码字符集为字符集中的每个字符分配唯一的数字代码。数字代码称为代码点或编码值。下表显示了已在ASCII字符集中分配十六进制代码值的字符示例。
选择国家字符集 国家字符集一词是指一种替代字符集,它使您能够将Unicode字符数据存储在没有Unicode数据库字符集的数据库中。选择国家字符集的另一个原因是,对于广泛的字符处理操作,不同字符编码方案的属性可能更可取。 SQL
NCHAR、NVARCHAR2和NCLOB数据类型仅支持Unicode数据。您可以使用UTF8或AL16UTF16字符集。默认情况是AL16UTF16。 Oracle建议在CHAR数据库中使用SQLVARCHAR2和CLOB数据类型来存储Unicode字符数据。只有在必须使用数据库字符集不是NCHAR的数据库时,才应考虑使用SQLNVARCHAR2、NVARCHAR2和NCLOB。
发布于 2020-10-19 09:13:08
在Oracle中,这两个字符集主要出于历史原因。在早期,典型的设置是
US7ASCIIWE8ISO8859P1字符集用于应用程序的泛型部分。然后,对于您的客户超过世界上所有国家,您设置的国家字符集,根据客户当地的要求。
现在,使用Unicode (即AL32UTF8),实际上没有理由再使用国家字符集了。越来越多的新的本地Oracle函数甚至根本不支持国家字符集。
唯一的原因可能是大量使用亚洲字符,在这些字符中,AL16UTF16在空间上更有效。
https://stackoverflow.com/questions/64423873
复制相似问题