java类型转换造成的字节丢失,java 编码转换(已解决,转换字节丢失,无法实现)
Header里面的Content-Disposition只支持ASCII,所以我們傳輸?shù)奈募仨毷茿SCII,當(dāng)文件名為中文時(shí),必須要將該中文轉(zhuǎn)換成ASCII。
如果服務(wù)端能處理,最好直接將filename通過URLEncode編碼。
根據(jù)你提供的代碼,你服務(wù)端返回的數(shù)據(jù)實(shí)際是GBK編碼,可參考以下代碼是可以獲取到正確名稱:
String url = "http://hk.azero-ng.cn/index2.php";
URL obj = new URL(url);
URLConnection conn = obj.openConnection();
Map> map = conn.getHeaderFields();
String[] cells = map.get("Content-Disposition").get(0).split(";");
String filename = cells[1].replace(" filename=", "");
System.out.println(filename);
String Wrong_utf8 = new String(filename.getBytes("ISO-8859-1"),"GBK");
System.out.println(Wrong_utf8);
建議服務(wù)端直接名稱URLEncode編碼即可,
總結(jié)
以上是生活随笔為你收集整理的java类型转换造成的字节丢失,java 编码转换(已解决,转换字节丢失,无法实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 索尼虚拟制作工具套装正式版免费开放下载
- 下一篇: oracle导入视图报错,exp/imp