当前位置:编程学习 > JAVA >>

移动端上传 带有中文的流,服务器端怎么处理

本人着实菜鸟一枚,之前是搞android的,由于公司项目模块需要,得自己搭服务器测试,我androidd端是以表单形式上传文件,但是只要当我文件名含有中文,服务器端就报空指针,ios的却没问题,android和ios都是UTF-8格式的,服务器端是GBK格式,我试过把服务器也改成UTF-8的,还是不行,在网上也搜了些资料说是要转码,服务器端是通过HttpServletRequest对象获得客户端信息的,只是这个HttpServletRequest怎么转码呢,求指教啊!!! android上传 服务器转码 --------------------编程问答-------------------- 抓包吧,传一样的内容,看看安卓传过来的和 ios 的有啥不同 --------------------编程问答-------------------- 你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();
--------------------编程问答-------------------- request.setCharacterEncoding("utf-8"); --------------------编程问答-------------------- 在你的tomcat配置一下Uriencoding --------------------编程问答--------------------
引用 3 楼 fudongrifdr 的回复:
request.setCharacterEncoding("utf-8");

这个试过了,木有用 --------------------编程问答--------------------
引用 2 楼 huxiweng 的回复:
你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();

怎么编码,都编码成GBK的? --------------------编程问答--------------------
引用 6 楼 a380226205 的回复:
Quote: 引用 2 楼 huxiweng 的回复:

你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();

怎么编码,都编码成GBK的?


函数都给你了,你试一下啊。GBK,UTF-8都试下。不过要对应,即用URLEncoder和URLDecoder,
client编码和server端解码都要统一。 --------------------编程问答--------------------
引用 7 楼 huxiweng 的回复:
Quote: 引用 6 楼 a380226205 的回复:

Quote: 引用 2 楼 huxiweng 的回复:

你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();

怎么编码,都编码成GBK的?


函数都给你了,你试一下啊。GBK,UTF-8都试下。不过要对应,即用URLEncoder和URLDecoder,
client编码和server端解码都要统一。

服务器端HttpServletRequest request = ServletActionContext.getRequest();
我是通过HttpServletRequest对象获得客户端信息的,直接setEncoding()不行吧,这个怎么去解码呢? --------------------编程问答--------------------
String temp = requset.getParameter();
String zhongwen = URLDecoder.decode(temp, "UTF-8");


引用 8 楼 a380226205 的回复:
Quote: 引用 7 楼 huxiweng 的回复:

Quote: 引用 6 楼 a380226205 的回复:

Quote: 引用 2 楼 huxiweng 的回复:

你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();

怎么编码,都编码成GBK的?


函数都给你了,你试一下啊。GBK,UTF-8都试下。不过要对应,即用URLEncoder和URLDecoder,
client编码和server端解码都要统一。

服务器端HttpServletRequest request = ServletActionContext.getRequest();
我是通过HttpServletRequest对象获得客户端信息的,直接setEncoding()不行吧,这个怎么去解码呢?
--------------------编程问答--------------------
引用 9 楼 huxiweng 的回复:
String temp = requset.getParameter();
String zhongwen = URLDecoder.decode(temp, "UTF-8");


Quote: 引用 8 楼 a380226205 的回复:

Quote: 引用 7 楼 huxiweng 的回复:

Quote: 引用 6 楼 a380226205 的回复:

Quote: 引用 2 楼 huxiweng 的回复:

你android那边怎么请求的??
建议将你的中文用URLEncoder.encode();
后台再用URLDecoder.decode();

怎么编码,都编码成GBK的?


函数都给你了,你试一下啊。GBK,UTF-8都试下。不过要对应,即用URLEncoder和URLDecoder,
client编码和server端解码都要统一。

服务器端HttpServletRequest request = ServletActionContext.getRequest();
我是通过HttpServletRequest对象获得客户端信息的,直接setEncoding()不行吧,这个怎么去解码呢?

我试了下,还是报空指针,requset.getParameter()是只能是单个键值对编解码,有木有方法能将request中的信息一次性编解码出来? --------------------编程问答-------------------- request.setCharacterEncoding()
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,