2017-08-04 40 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); 
    } 
}