我们正在安装订购一个configuration的oracle数据库,他们问我们想要什么字符编码。 应用程序(Java)只有英文,但用户来自世界各地。
有没有动机不使用UTF8或其他Unicode字符集?
你应该有两个select:
VARCHAR2 , CHAR , CLOB数据types使用)。 NVARCHAR2 , NCHAR , NCLOB数据types使用)。 如这里所见 :
Oraclebuild议对所有新系统部署使用Unicode。
国家字符集只能是Unicode:UTF-8或UTF-16。 所以select相同的字符集将是多余的…
我的build议(你说你的申请只有英文):
这里是我的模式定义的一般build议。 按表逐列(我在这里取VARCHAR2 / NVARCHAR2样本):
NVARCHAR2 。 VARCHAR2 。 但要小心:
不要使用名称为UTF8的字符集作为数据库字符集,除非版本8.1.7及更早版本中与Oracle数据库客户机和服务器兼容,或者除非应用程序供应商明确要求。 尽pipe名称非常相似,但UTF8并不是Unicode编码UTF-8的正确实现。 如果使用UTF8字符集进行UTF-8处理,可能会出现数据丢失和安全问题。 Web相关的数据尤其如此,例如XML和URL地址。
Oraclebuild议使用AL32UTF8作为数据库字符集。 AL32UTF8是Unicode标准的UTF-8编码的Oracle名称。
有没有动机不使用UTF8或其他Unicode字符集?
只是一个; 你有一个现有的数据集,你不能保证当前的字符集编码。
在这种情况下,你可能想要补救,仍然使用UTF8。
一点都不。
半开玩笑:是的,你不能和不知道UTF的老客户连接。