url中含有中文的问题
发布网友
发布时间:2022-04-23 06:10
我来回答
共4个回答
热心网友
时间:2023-10-18 12:33
你需要把中文转码,然后在服务器进行解码操作
因为请求连接是不支持中文的
例子如下:
String string = "蔡君如";
String eStr = URLEncoder.encode(string, "utf-8");
System.out.println(eStr);
System.out.println(URLDecoder.decode(eStr, "utf-8"));
输出:
%E8%94%A1%E5%90%9B%E5%A6%82
蔡君如
上面那个是url用的编码格式,参数带那个 然后服务器解码:
new String(user.getName().getBytes("iso-8859-1"),"utf-8")
解码不用URLDecoder,直接得到参数的bytes,然后根据加码格式解码
下载文件只需把文件写入response的输出流即可:
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition", "attachment; filename=\""
+ new String(sss.getBytes("iso-8859-1"), "utf-8") + "\"");
OutputStream os = response.getOutputStream();
String pathString = request.getRealPath("/")
+ new String(sss.getBytes("iso-8859-1"), "utf-8");
InputStream is = new FileInputStream(new File(pathString));
byte[] buffer = new byte[2048];
int len = 0;
while ((len = is.read(buffer)) > 0) {
os.write(buffer, 0, len);
}
is.close();
os.flush();
os.close();
这样返回的就是个文件了~~
希望对你有帮助!
热心网友
时间:2023-10-18 12:33
你是想打开一个文件吗?
如果是的话,用一个流,用你这样的方式,会受到URL*.
如果非要这样,java.net.URLEncoder.encode 这个是正解追问不仅要打开 还要读出来 其他工作都做完了 只是以前都是用英语如a.doc这种方式测试 现在就是想把汉语文字的文件也读出来 我是从Xml中读出的String类型的url 看网上的都是从前台传入时 才用java.net.URLEncoder.encode 呢 更何况我刚刚试过了 还是找不到文件 还称英语的还是可以的 看到又遇到这种问题的人发的贴子 但是并没有人回答出解决方案啊 还请再给我看看
追答6478914
加QQ详细说吧
热心网友
时间:2023-10-18 12:34
我自己新建了个测试的项目
无论是请求url带参还是解析xml,中文均可行
这里不方便贴代码解释,加q376570564
我是楼上:不一定是飞机
补充回答百度发不上来!!
热心网友
时间:2023-10-18 12:34
需要你的服务器支持中文url才行。比如tomcat,可以在server.xml中设置url的字符集,就可以了。其他的服务器你搜一下处理办法吧。