如何在DB2中用正常字符替换重音?
例如:ëèé
变为eee
编辑:我可以在我的函数中使用REPLACE
函数,但我不想抓住所有可能性,因为对我来说似乎无穷无尽。
答案 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一起使用。