Android用Java实现下载如果下载路径的文件名是中文,会出现乱码。new URL(String filepath),filepath需要是一个字符串,如果出现中文,不会默认为字符串,编码方式不同吧,URL的字符集只允许"US-ASCII"编码。解决办法:

String filename = "文件中文名.jpg";

URL url = new URL(fileParentUrl+ File.separator  + java.net.URLEncoder.encode(filename,"UTF-8"));//用UTF-8编码

参考文件:

@1:

//uriStr这个URL比如在服务端存在这样的路径,如果你这个路径乱码///了,服务端个版本不能再,那肯定找不到这个文件,那么就无法下载咯
String uriStr=localhost+java.net.URLEncoder.encode(url,"UTF-8");
//主机名别encode直接encode文件名···
URL url=new URL(uriStr);
Log.v("url",url);//看看这个log的路径,看看与你服务端的是否一致,不一致的话,你java.net.URLEncoder.encode(url,"UTF-8");//编码以下,保证不能乱码、、
HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();

@2:
中文文件名本来就有问题。因为“URL”这个东西的规范里规定,URL的字符集只允许"US-ASCII"。
中文字符放在URL里时应该先转换成字节(根据GB、BIG5或者UTF8),然后使用16进制转义。一般(这真没法说什么叫“一般”)服务器接受UTF-8字符,但是,真的是和服务器相关。
Firefox访问http://localhost:1234/中文.html的时候,实际发出的请求是这样的:

引用
GET /%E4%B8%AD%E6%96%87.html HTTP/1.1
Host: localhost:1234
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.8,zh-cn;q=0.5,zh;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

看出来这个“中文”是按UTF-8转义的。

Android 文件下载中文名乱码的解决办法相关推荐

  1. Xamarin Android SDK无法更新的解决办法

    Xamarin Android SDK无法更新的解决办法 Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved.出现 ...

  2. ubuntu下文件名乱码的解决办法

    ubuntu下文件名乱码的解决办法 (2012-11-30 11:38:49) 转载▼ 标签: 终端 ubuntu it 分类:系统问题 ubuntu下文件名乱码的解决办法       最近一直在用u ...

  3. php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法

    使用phpexcel类库导出excel文件,文件名为中文时,在chrome浏览器下导出正常,在IE内核浏览器下导出文件名显示乱码,解决办法就是通过iconv函数转换编码,从utf-8转为gb2312, ...

  4. freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法

    PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. ...

  5. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法

    redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...

  6. php站中文转码在iis 7.5乱码,iis伪静态中文url出现乱码的解决办法

    首先要看下你安装的是IIS rewrite_2.0还是ISAPI_Rewrite 3.x的伪静态插件. 如果你安装的是IIS rewrite_2.0的话,传递的参数都是UTF-8格式的,如果你网站是G ...

  7. Loadrunner乱码的解决办法

    乱码出现的步骤 1.录制过程产生的乱码 2.运行过程编码不一致   录制的时候本机默认编码:GB2312,GBK,GB18030,而录制的网页有可能是uft-8编码 GB pk UTF-8 GB-X: ...

  8. EndNote导入文献出现带有大括号{}乱码的解决办法

    文章目录 1 EndNote导入文献出现带有大括号{}乱码的解决办法 3 EndNote X9 插入参考文献常见问题总结 4 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 EndN ...

  9. php 返回英文乱码,使用php 5时MySQL返回乱码的解决办法_php

    在使用 php 5 中,通过 mysql 查询得到的值全部成为 '???????',原来是字符集设错了. 我在安装 MySQL 5 时,已经选择默认字符集为 gb2312,但还是返回乱码,解决的办法是 ...

最新文章

  1. opencv-mediapipe手部关键点识别
  2. [转] Linux GCC 编译使用
  3. Megastore:为交互式服务提供可扩展的高可用性存储
  4. Receiver type ‘X’ for instance message is a forward declaration
  5. opencv java ubuntu_Ubuntu 16.04配置OpenCV 3.1.0 for Java
  6. 蔚来否认关闭硅谷办公室 近期也没有回科创板的计划
  7. ORBSLAM关键帧的筛选和插入
  8. Matlab来实现DDS功能
  9. CPU缓存侧信道攻击
  10. 如何把Tomcat 9 的默认8080端口变成80端口
  11. 无线路由器与交换机配合使用,图解
  12. java识别答题卡纸_答题卡读取答案的原理是什么?
  13. 高电平输入好还是rca输入好_dsp高电平和低电平输入哪个好
  14. 可变参C API va_list,va_start,va_arg_va_end以及c++可变参模板
  15. linux启用dcb步骤,Linux内核DCB子系统
  16. ChatGPT初体验——开发好帮手
  17. c语言编程显示文件无效或损坏,【转】LNK1123: 转换到 COFF 期间失败: 文件无效或损坏...
  18. 使用Termux软件在安卓手机上安装ubuntu
  19. 计算机网络(2)传输层
  20. 巨头“围攻”之下,新氧医美能否“破局”?

热门文章

  1. 微信“公众平台测试账号”接口调试指南
  2. html表单元素占位符是,HTML各种表单元素模板及写法
  3. 夯实基础之C语言基础算法
  4. 浅谈CSS background参数 属性。
  5. 设计模式六大原则(初步理解)
  6. 读懂你的大脑——漫话神经元
  7. House of sprit一谈
  8. 定制NFC卡片/ntag213芯片卡/手机NFC感应卡片
  9. 【已解决】pycharm 终端无法激活conda环境
  10. 猜数字游戏项目验收总结