URL的编码问题URLDecoder和URLEncoder

来源:互联网 发布:淘宝潘多拉代购真的吗 编辑:程序博客网 时间:2024/05/20 17:27

场景:

通过URL读取网页内容,但URL中有中文参数。

解决:

需要用URLEncoder对中文参进行转化

如:广州通过转码>>>URLEncoder.encode(“广州”,"utf-8")

得到:%E5%B9%BF%E5%B7%9E

案例:天气查询~

package com.temp.demo.util;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import com.temp.demo.bean.Result;/** * 查询天气工具类 * @author sunmnet-developer * */public class ReadUtil {public static Result findByCity(String cityName) throws Exception {//必须转码为encode类型String encode=URLEncoder.encode(cityName, "utf-8");//查询接口(免费)URL url=new URL("https://api.seniverse.com/v3/weather/now.json?key=8xpdyjgfcizdqyuc&location="+encode);HttpURLConnection conn=(HttpURLConnection) url.openConnection();//通过流读取内容BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));StringBuffer sb=new StringBuffer();String line="";while ((line=br.readLine())!=null) {sb.append(line);}System.out.println(sb);return null;}public static void main(String[] args) throws Exception {ReadUtil.findByCity("广州");}}


备注:

在群里看到有人问这个编码的问题,然后注意到他的事天气服务。。。就跟着瞎搞了,刚开始搞,编码问题就卡了一个下午,暂时没有后续...

阅读全文
0 0
原创粉丝点击