
你具体指什么时候乱码
大致猜测你的意思应该是URL被浏览器自动urlencode了吧?
在你需要用到URL的地方对它进行URLDECODE就可以了,jdk自带URLDecoder类进行处理!
URLConnection context = urlopenConnection();
InputStream in = contextgetInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
包装流的时候要加入网站的编码 ,gbk和utf-8都试试
指定编码
发送方 ServerUrlEncode("中文", EncodingGetEncoding("GB2312"));
接收方 ServerUrlDecode(Request["key"], EncodingGetEncoding("GB2312"));
程序是用utf-8编码写的吧?国内用户的浏览器大部分默认编码都是GBK,如果URL中含有中文参数,这个参数就是GBK编码的,在utf-8编码的程序中跑肯定就是乱码。需要转一下码:
mb_convert_encoding(参数, 'UTF-8', 'GBK')
或者
iconv("GBK", "UTF-8//IGNORE", 参数);
你这个问题真心不好办,建议你把页面编码改为GBK编码把。像楼上说的这些方法看似行得通,原理就是把utf-8转为gbk然后再转回utf-8,但那样是不能解决问题的,试图通过String
newStr
=
new
String(strgetBytes("gbk","utf-8"));办不到的,结果是中文字符为奇数会出现最后一个字乱码。我以前也曾碰到这个情况,最后还是把页面统一编码解决。
-
java >
把中文转成unicode编码,然后放到配置文件中,通过取unicode编码来访问中文,就不会存在乱码的问题了,具体方法就是直接在配置文件里该中文=unicode编码就行了,然后取到这个配置文件,读取对应的值,然后放到url中。
以上就是关于怎么解决java中url乱码全部的内容,包括:怎么解决java中url乱码、java中通过url获取网页内容,中文显示是乱码、asp.net URL传递中文获取为乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)