Normalize a String to create a safe URL in Java
java, normalization, string, url
Solution
Taking the content from my previous answer here, you can use `java.text.Normalizer` which comes close to normalizing Strings in Java. An example of normalization would be;
Accent removal:
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);
Gives;
arvizturo tukorfurogep
Problem
I'm writing a library in Java which creates the URL from a list of filenames in this way: ``` 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" ``` Exists somewhere a Java library that exposes the method `normalize` that I'm using in the code above? Literature: - Which special characters are safe to use in url? - Safe characters for friendly url