在ISO-8859-1 Oracle数据库中编码“€”字符

时间:2011-04-29 13:17:40

标签: database oracle encoding character-encoding euro

是否可以在字符集为的ISO数据库中插入“€”(作为VARCHAR)?ISO-8859-1?

我想从ISO-8859-1转到ISO-8859-15 charset(甚至WINDOWS-1252 charset将适合)我的数据库,以便在我的数据库中存储“€”,但有人告诉我,数据库的ISO-8859-1字符集,它可以直接存储我的“€”字符。

所以问题是,目前,我正在尝试为ISO-8859-1数据库找到这个解决方案>插入“€”会有一个意思(取决于客户端/驱动程序等的字符集,但不依赖于数据库的字符集)

你对此有何看法......?

如果是,那么为什么我们必须为Oracle数据库定义一个字符集吗?有人告诉我,这只是为了Oracle“知道编码字符需要多少字节”(因此选择一个字符集相当于只为Oracle选择一些位来编码每个字符。结论:ISO-8859对于Oracle,在某些方面-1 = ISO-8859-15-WINDOWS = 1252,因为所需的位数相同...)

我希望我(几乎)清楚..但在我看来我认为我 从不 能够执行INSERT (使用“€”)和SELECT并在ISO-8859-1数据库中检索我的“€”...

感谢您阅读..

(PS:数据库是10g版本)

1 个答案:

答案 0 :(得分:4)

ISO-8859-1中未分配个字符。因此,你无法代表它。与ISE-8859-15中相同的字节用于表示¤(货币一般符号)。

Source

Oracle需要知道它将对数据库进行哪种字符集编码,以实现以下目的:

  • 了解存储每个字符的字节数
  • 能够在客户端NLS不同时执行转换(某些客户端以UTF-8发送查询,数据有效ISO-8859-1:Oracle可以将其翻译)。
  • 分析列内容的包(如全文搜索)对其所属字符很敏感。