我猜想URL的来源更多是错误的。也许您正在解决错误的问题?从URI中删除“奇怪”字符可能会赋予它完全不同的含义。
这样,您就可以通过简单的字符串替换来删除所有非ASCII字符:
string fixed = original.replaceAll("[^\x20-\x7e]", "");或者,您可以将其扩展为所有非四字节UTF-8字符,如果该字符不包含“。”字符:
string fixed = original.replaceAll("[^\u0000-\uFFFF]", "");
我猜想URL的来源更多是错误的。也许您正在解决错误的问题?从URI中删除“奇怪”字符可能会赋予它完全不同的含义。
这样,您就可以通过简单的字符串替换来删除所有非ASCII字符:
string fixed = original.replaceAll("[^\x20-\x7e]", "");或者,您可以将其扩展为所有非四字节UTF-8字符,如果该字符不包含“。”字符:
string fixed = original.replaceAll("[^\u0000-\uFFFF]", "");