将法语重音字符翻译或转换为基本ASCII字符

时间:2016-09-22 21:27:34

标签: character-encoding db2

我们有一个Customer表,其中包含“名字”和“姓氏”列。表中有数百万条记录。很少有记录有法语重音字符。

示例:Adélaïde,Amélie等。

我正在寻找一个可以将重音转换或转换为基本ASCII字符的DB2函数。

示例:

输入:Amélie

输出: Amelia

我知道我们有一个Java解决方案。我们可以使用Apache Commons StringUtils库进行转换。

String input = StringUtils.stripAccents("Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ");
System.out.println(input);

从版本3.4开始,这不适用于Ø或Ł。

以下解决方案适用于所有角色。     翻译(col,'aAeEiIoOuUaAeEuUaAeEiIoOuUeEiIuOuCcnNaaaiAAAIoOyydDYooOOA','áÁÉÉíÍóÓúÚàÀèÈùÙâÂêÊîÎÔÔÛëËïÏöÖüÜçÇñÑäãååÄÃÅÌøØÿýðÐÝòõÒÕæ')

注意:æ转换为A

2 个答案:

答案 0 :(得分:1)

如果需要,可以使用translate功能:

  translate(upper(ColName),'AAAEEEIIIOOOUUU','ÁÀÄÉÈËÍÌÏÓÒÖÚÙÜ')

答案 1 :(得分:0)

https://www.senat.fr/questions/base/2018/qSEQ180303860.html

声明授权使用法国公民姓名的唯一字符是

à-â-ä-é-è-ê-ê-ë-ï-î-ô-ô-ö-ù-û-ü-ÿ-ç和æ和œ-答案将是

replace(replace((translate(lower(ColName),'aaaeeeeiioouuuyc','àâäéèêëïîôöùûüÿç')),'æ','ae'),'œ','oe')