我正在用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"
存在一个Java库,它暴露了我在上面的代码中使用的方法normalize
?
文献:
答案 0 :(得分:5)
从我之前的回答here中获取内容,您可以使用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);
给出;
arvizturo tukorfurogep
答案 1 :(得分:1)
假设您想要对字符串进行编码以使其对网址安全。在这种情况下使用URLEncoder:
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 + URLEncoder.encode(filenames[0], "UTF-8"));
System.out.println(domain + URLEncoder.encode(filenames[1], "UTF-8"));
System.out.println(domain + URLEncoder.encode(filenames[2], "UTF-8"));