2017-08-04 89 views
1

如何将发送给蜂巢的SELECT请求中的非ascii字符替换为ascii对应字符?删除了重音符(é,ê,è =>e),并删除了其他非字母数字字符(``)。蜂巢:非重音字母的重音字符

我知道我可以使用regexp_replace()但我必须处理每一个重音/非重音对。当然,有更实际的东西?

回答

1

看来你要使用

String subjectString = "öäü"; 
subjectString = Normalizer.normalize(subjectString, Normalizer.Form.NFD); 

正如 Replace non ASCII character from string

说明我一直在使用reflect尝试,但不能使它工作由于Normalizer.Form枚举参数。

所以,看来你必须定义一个单行UDF:

public class NormalizerUDF extends UDF { 
    public String evaluate(String in) { 
     return Normalizer.normalize(in, Normalizer.Form.NFD); 
    } 
}