您好我正在尝试获取一个网址,我正在获取一个字符串我正在尝试解码该字符串,但整个字符串不解码我如何解码整个字符串解码
这是我的代码
geturl.jsp
<%
URL url;
try {
// get URL content
String a = "http://122.160.81.37:8080/mandim/MarketWise?m=agra";
url = new URL(a);
URLConnection conn = url.openConnection();
// open the stream and put it into BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String inputLine;
while ((inputLine = br.readLine()) != null) {
String str = new String(inputLine.getBytes(), "utf-8");
out.println(str);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
%>
我得到以下输出
धान~1325|चावल~2050|ज�?वर~920|जौ~810|मकई~1280|गेहू�?~1420|जो~1050|बेजर~-|जय~800|उड़द~3600|मूंग~4400|चाना~3400|मटर~2700|अरहर~4100|मसूर~2000|लोबिया(बीज)~-|सोयाबीन~-|ढे�?चा(बीज)~-
我在这里得到一些?符号
所需的输出
धान~1325|चावल~2050|ज्वर~920|जौ~810|मकई~1280|गेहूँ~1420|जो~1050|बेजर~-|जय~800|उड़द~3600|मूंग~4400|चाना~3400|मटर~2700|अरहर~4100|मसूर~2000|लोबिया(बीज)~-|सोयाबीन~-|ढेँचा(बीज)~-
如何获得所需的输出?
提前致谢
答案 0 :(得分:2)
如果您可以假设编码是“UTF-8”,那么请使用@Joni的解决方案。
但技术上更正确的解决方案是:
conn.getHeaderField("content-type")
提取响应媒体类型,charset
参数(如果有)和同时您应该检查mediatype是否符合预期,并检查响应状态代码。
参考文献:
答案 1 :(得分:0)
创建阅读器时指定编码:
new InputStreamReader(conn.getInputStream(), "UTF-8"));
请勿尝试进行任何其他转换。
答案 2 :(得分:0)
您可以看到许多使用utf-8编码的字符,除了少数几个。因此,请确保在您的系统中安装了支持所有这些的正确字体。