url中含有中文的问题
我是从xml中读取文件的信息信息中含有url地址例如http://127.0.0.1:8080/resources/a.doc当然这个是英文的是可以运行的但a.doc换成...
我是从xml中读取文件的信息 信息中含有url地址 例如http://127.0.0.1:8080/resources/a.doc当然这个是英文的 是可以运行的 但a.doc换 成中文后 例如 我.doc就不行了 现在我要用这个url 找到这个文件 然后读出并可以提供下载 在url是英文的情况下 这些工作已经做完了 但是是中文的话 就会提示 找不到文件 但这个文件确确实实是存在的 路径也对 啊 求高手 今天是最后一天 我不想放弃 如果今天整不好 就要放到整个项目的 最后在处理 那要等到什么时候 啊 实在是不甘心啊
server.xml 中已经设置了 是改gb2312 utf-8 gbk 都试过了 展开
server.xml 中已经设置了 是改gb2312 utf-8 gbk 都试过了 展开
展开全部
你需要把中文转码,然后在服务器进行解码操作
因为请求连接是不支持中文的
例子如下:
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();
这样返回的就是个文件了~~
希望对你有帮助!
因为请求连接是不支持中文的
例子如下:
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();
这样返回的就是个文件了~~
希望对你有帮助!
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
你是想打开一个文件吗?
如果是的话,用一个流,用你这样的方式,会受到URL限制.
如果非要这样,java.net.URLEncoder.encode 这个是正解
如果是的话,用一个流,用你这样的方式,会受到URL限制.
如果非要这样,java.net.URLEncoder.encode 这个是正解
追问
不仅要打开 还要读出来 其他工作都做完了 只是以前都是用英语如a.doc这种方式测试 现在就是想把汉语文字的文件也读出来 我是从Xml中读出的String类型的url 看网上的都是从前台传入时 才用java.net.URLEncoder.encode 呢 更何况我刚刚试过了 还是找不到文件 还称英语的还是可以的 看到又遇到这种问题的人发的贴子 但是并没有人回答出解决方案啊 还请再给我看看
追答
6478914
加QQ详细说吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我自己新建了个测试的项目
无论是请求url带参还是解析xml,中文均可行
这里不方便贴代码解释,加q376570564
我是楼上:不一定是飞机
补充回答百度发不上来!!
无论是请求url带参还是解析xml,中文均可行
这里不方便贴代码解释,加q376570564
我是楼上:不一定是飞机
补充回答百度发不上来!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要你的服务器支持中文url才行。比如tomcat,可以在server.xml中设置url的字符集,就可以了。其他的服务器你搜一下处理办法吧。
更多追问追答
追问
都设置了 啊 server,xml中 试过gbk utf-8 gb2312 还有办法吗
追答
如果不行就在url上转义吧,比如在你要跳转到这个页面的超链接中使用:java.net.URLEncoder.encode("中文")试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询