2012-07-10 68 views
1

我如何转换Æ(latin capital letter ae)AE(US7ASCII)在oracle.I试图与按照下面的查询:转换双拉丁字母US7ASCII

SELECT CONVERT ('Æ', 'US7ASCII') FROM DUAL; 

但它给我作为输出,但相同的查询正在为单个字符,如下所示:

SELECT CONVERT ('à', 'US7ASCII') FROM DUAL; 

OUTPUT 
========== 
a 
========== 
+0

您是否试图从一个字符集迁移到另一个字符集?为什么'REPLACE'不起作用? – 2012-07-10 13:23:52

+0

@AdamHawkes:我不想硬编码:( – 2012-07-10 13:29:53

回答

0

US7ASCII是7比特字符集。可能你在这128个字符中没有字符“Æ”。所以这是不可能的。

+0

:那么这样的数据集的解决方案是什么,我不想硬编码这个。我有一个字符串'Ææßáâãäåçèéêëìíîïðñòóôõöøùúûüýÿ',我不知道如何做这个没有硬编码 – 2012-07-10 13:23:09

+0

我不明白你想做什么 – 2012-07-10 14:04:53

+0

:我只是想把双字符集转换成普通的英文字符,比如'Æ'到'AE',还有更多 – 2012-07-10 14:30:59

1

在ASCII以外的字符集中有一堆数据,并且希望将其全部转换为ASCII。为了更自动地做到这一点,您需要熟悉Customizing a Locale,以便CONVERT知道您希望如何完成转换。是的,这意味着要对您想要的转换进行硬编码,但只能进行一次,而不是针对您要执行的每项操作。

一般而言,您可能不会很乐意转换这些字符。像“Æ”转换为“AE”和“ß”转换为“SS”或“SZ”的东西可能会导致长期受挫。

相关问题