用“普通”字符DB2替换重音符号

时间:2014-07-17 09:19:47

标签: sql db2

如何在DB2中用正常字符替换重音?

例如:ëèé变为eee

编辑:我可以在我的函数中使用REPLACE函数,但我不想抓住所有可能性,因为对我来说似乎无穷无尽。

2 个答案:

答案 0 :(得分:1)

一个想法是编写一个java函数,如:http://www.drillio.com/en/software-development/java/removing-accents-diacritics-in-any-language/

public static String removeAccents(String text) {
    return text == null ? null
        : Normalizer.normalize(text, Form.NFD)
            .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

现在您可以在DB2中注册该函数并从sql中使用它。请参阅db2文档中的sqlj.install_jar

答案 1 :(得分:0)

这个替代品没有实用工具,因为这不是通用的,而是一个非常具体的案例。

例如,在法语中我们有:çàéèùêô€œ

在西班牙语中我们有:áéíóúñüÑ

德国人和丹麦人有不同的角色。

甚至一些英语单词都有外国字符:façade。

你打算如何翻译它们?即使看起来无穷无尽,你也必须提供自己的替代品。首先,您需要为要翻译的语言创建匹配列表,然后创建无限列表。

顺便说一句,你为什么要翻译它们?任何井应用程序都支持Unicode,只有旧的或坏的应用程序不能正确支持Unicode。

最后,如果使用正则表达式,则可以创建更灵活的方法来更改字符。在DB2中,您可以将它们与xQuery一起使用。