日期:2014-05-17  浏览次数:20740 次

String 去除乱码的问题,help!
我从别的地方获取一个字符串,里面有一个字符时乱码。例如:
String str="这是一个求?帖";
str这个字符串中有个字符是乱码,所以显示就是一个?,但用.replace("?","")又去不掉。
这个乱码应该是不好转过来的,所以我要去掉这个乱码“?”,求大神门给个可行的办法。。



------解决方案--------------------
.replace("\?","")
------解决方案--------------------
你用全角?号replace试试呢。。。

探讨

引用:
replace应该可以的,不过需要注意全角半角?号,
你直接复制str里的?号到replace里试试。。

?不是我定义上去的。。是我从别的地方获得一个字符串,然后里面有一个字符时乱码,所以显示的是?

------解决方案--------------------
String tt = str.substring(6, ts.indexOf("帖"));
再.replaceAll(tt,"")
------解决方案--------------------
Java code

String utf8   = "[\\x01-\\x7f][^\\w]|[\\xc2-\\xdf][\\x80-\\xbf]|[\\xe0-\\xef][\\x80-\\xbf]{2}[^\\w]|[\\xf0-\\xff][\\x80-\\xbf]{3}[^\\w]";
String gb2312 = "[\\x01-\\x7f][^\\w]|[\\x81-\\xfe][\\x40-\\xfe][^\\w]";
String gbk   = "[\\x01-\\x7f][^\\w]|[\\x81-\\xfe][\\x40-\\xfe][^\\w]";

String.replaceAll(utf8, "");  //根据你自己的编码用不同的正则