标准化字符串以在Java中创建安全的URL

mat*_*boy 3 java string url normalization

我正在用Java写一个库,它以这种方式从文件名列表创建URL:

final String domain = "http://www.example.com/";

String filenames[] = {"Normal text","Ich weiß nicht", "L'ho inserito tra i princìpi"};

System.out.println(domain+normalize(filenames[0]);
//Prints  "http://www.example.com/Normal_text"
System.out.println(domain+normalize(filenames[1]);
//Prints  "http://www.example.com/Ich_weib_nicht"
System.out.println(domain+normalize(filenames[2]);
//Prints  "http://www.example.com/L_ho_inserito_tra_i_principi"
Run Code Online (Sandbox Code Playgroud)

是否存在某个Java库,该库公开了normalize我在上面的代码中使用的方法?

文献:

Pop*_*ibo 5

以我以前的答案内容在这里,你可以用java.text.Normalizer它来接近Java中正火字符串。标准化的一个例子是;

去除口音:

String accented = "árvízt?r? tükörfúrógép";
String normalized = Normalizer.normalize(accented,  Normalizer.Form.NFD);
normalized = normalized.replaceAll("[^\\p{ASCII}]", "");

System.out.println(normalized);
Run Code Online (Sandbox Code Playgroud)

给予;

arvizturo tukorfurogep
Run Code Online (Sandbox Code Playgroud)