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