从URL中删除不需要的字符

时间:2017-09-29 08:27:23

标签: java string character-encoding special-characters encode

我有这个变量String var = class.getSomething,其中包含此网址http://www.google.com§°§#[]|£%/^<>。出来的输出是:http://www.google.comç°§#[]|£%/^<>。我怎么能删除那个?谢谢!

5 个答案:

答案 0 :(得分:1)

你可以这样做,它会取代任何字符,以便空白获取你的紫癜。

str = str.replace("Â", "");

这样你就可以取代Â,获得你想要的结果。

答案 1 :(得分:0)

使用String.replace

var = var.replace("Ã", "");

答案 2 :(得分:0)

将charset指定为UTF-8以消除不需要的额外字符:

    String var = class.getSomething; 
    var = new String(var.getBytes(),"UTF-8");

答案 3 :(得分:0)

您真的只想删除那个字符或所有无效字符吗?否则,您可以使用CharacterUtils.isAsciiPrintable(char ch)检查每个字符。但是,根据RFC 3986,URL中允许的字符更少(字母数字和&#34; -_。+ =!*&#39;()〜,:; /?$ @&amp;%&#34;,请参阅Characters allowed in a URL)。

在任何情况下,你都必须创建一个新的String对象(比如Elias MP的回答中的replace或者将有效字符逐个放入StringBuilder并将其转换为String),因为字符串是不可变的在Java。

答案 4 :(得分:0)

使用utf-8输出var中的字符串,从而产生字节序列:

c2 a7 c2 b0 c2 a7 23 5b 5d 7c c2 a3 25 2f 5e 3c 3e

这恰好是你看到的字符的iso-8859-1编码:

 § ° §#[]| £%/^<>
ç°§#[]|£%/^<>

C2是Â。

的编码

我不确定Ã是如何产生的;它的编码是C3。

我们需要完整的代码来了解这是如何发生的,以及如何配置系统上文本文件的字符编码的说明。

修改变量var是没用的。