于httpclient上传文件是中文名称的处理_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 于httpclient上传文件是中文名称的处理

于httpclient上传文件是中文名称的处理

 2013/11/21 18:38:06  chenlifang_2007  程序员俱乐部  我要评论(0)
  • 摘要:在一个项目中,上传文件采用httpclient来post文件,在测试中发现如果文件是中文名称,上传的文件是乱码经过跟踪发现,原来在httpclient中进行了编码,为ASCII,所以为乱码org\apache\commons\httpclient\util包下EncodingUtil.Java/***ConvertsthespecifiedstringtobytearrayofASCIIcharacters
  • 标签:上传 文件 client 上传文件 HTTP
在一个项目中,上传文件采用httpclient来post文件,在测试中发现如果文件是中文名称,上传的文件是乱码
经过跟踪发现,原来在httpclient中进行了编码,为ASCII,所以为乱码
org\apache\commons\httpclient\util包下EncodingUtil.Java

/**
*ConvertsthespecifiedstringtobytearrayofASCIIcharacters.
*
*@paramdatathestringtobeencoded
*@returnThestringasabytearray.
*
*@since3.0
*/
publicstaticbyte[]getAsciiBytes(finalStringdata){

if(data==null){
thrownewIllegalArgumentException("Parametermaynotbenull");
}

try{
returndata.getBytes("US-ASCII");
}catch(UnsupportedEncodingExceptione){
thrownewHttpClientError("HttpClientrequiresASCIIsupport");
}
}

解决方法:
1在接收端处理ascii数据
2重新编译httpclient包,即更改上面的方法,改为iso8859-1或utf-8
这样可以解决中文的问题

50校招生网 http://www.50xiao.com
发表评论
用户名: 匿名