4

我需要将带有diatrics的字符串转换为它的ASCII版本。

例如,字符串“Caicó”被转换为“Caico”,“À bientôt”被转换为“A bientot”。许多欧洲语言使用变音符号来装饰常规拉丁字母以改变其发音,这是一个常见的问题。

问题是当使用 ASCII(常规)编码输入数据库时​​,您需要将其与 Unicode 字符进行比较。

该函数TO_ASCII在葡萄牙语的 PostegreSQL 中运行良好。对 Oracle 上的类似功能或在 Oracle 中比较此类字符串的更好方法有任何想法吗?

4

3 回答 3

2

这样的东西合适吗?也许将它包装在一个函数中?

SELECT CONVERT(TRANSLATE('Ä Ê Í Ó Ø A B C D E ã Ã ã Ã'
   ,'ãÃ','aA')
   ,'US7ASCII','WE8ISO8859P1') from dual
于 2012-11-23T04:24:18.180 回答
0

下面的函数在 Oracle 中几乎适用于葡萄牙语中的所有字符,但不适用于字符 'ã' 或 'Ã'</p>

SELECT CONVERT('Ä Ê Í Ó Ø A B C D E ã Ã','US7ASCII','WE8ISO8859P1') from dual
于 2012-11-22T18:14:51.497 回答
0

尝试使用

SELECT CONVERT('Ä Ê Í Ó Ø A B C D E ã Ã', 'us7ascii', 'ee8mswin1250') FROM DUAL

这将删除字符“ã”或“Ô。

于 2016-08-25T16:47:54.683 回答