上一篇“Android 文件关联详解“。但是关联指定的文件后,点击文件使用程序打开文件时,如果文件名中有中文总是获取不到正确的文件名,通过Log看输出得到的全是类似下面的输出:
/sdcard/%E8%B0%B7%E6%AD%8C%E9%BB%91%E6%9D%BF%E6%8A%A5--%E6%95%B0%E5%AD%A6%E4%B9%8B%E.tct

获取文件名的代码:
if(Intent.ACTION_VIEW.equals(action))
{
fileName=intent.getDataString();

Log.v(TAG,"Uri.decode fileName="+fileName);

try {
String newFileName=new String(fileName.getBytes(),"ISO8859_1");//
Log.v(TAG,"new String(fileName.getBytes(),'ISO8859_1'); newFileName="+newFileName);
} catch (UnsupportedEncodingException e) {
}

}
进行编码转换后没有用。查Android文档。发现getDataString()函数得到的是Uri,然后直接转换成String;查Uri类,找到一个decode函数。用之,正常。
正确代码为:fileName=Uri.decode(intent.getDataString());正确获取中文。(Log输出是乱码)。注意直接得到的fileName会带file://前缀

Android 获取文件名 乱码相关推荐

  1. java获取文件名乱码

    Java读linux系统文件文件名乱码的解决办法 1,问题描述 web应用想通过Java读取linux系统文件显示到web页面上,结果中文文件名出现乱码? 问题场景描述:当用户通过浏览器访问tomca ...

  2. android打开文件管理获取文件名,如何从android中的文件路径获取文件名

    我想从sdcard文件路径获取文件名.例如:/storage/sdcard0/DCIM/Camera/1414240995236.jpg I want get 1414240995236.jpg 我已 ...

  3. android studio 3.6 Build Output显示乱码(apk文件名乱码)

    1. 打开android studio 安装目录下的bin目录: 找到两个文件:studio.exe.vmoptions,studio64.exe.vmoptions 2.打开这两个文件最后一行添加: ...

  4. 使用FileItem获取文件名时注意事项

    获取文件名的时候,要注意对不同浏览器的处理,下面给出方法参考 FileItem类的常用方法: 1.  boolean isFormField() isFormField方法用于判断FileItem类对 ...

  5. bat修改文件内容_批量获取文件名,这几招太高效了!

    每周末整理好重点报告库内容后,风弦都会发一篇推文,文章中为大家列出本周收录报告的清单. 有朋友就很好奇,我是怎么获取这么多文件的文件名的,复制粘贴么?当然,不是!重点报告库每周收录100+最新报告,复 ...

  6. Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

    Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法 文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码 不 ...

  7. linux解压文件名乱码,linux下解压zip文件时,文件名乱码的解决(转载)

    转自:http://blog.sina.com.cn/s/blog_6261f8690101c1gx.html windows下的zip文件,在linux下解压时,经常会出现文件名乱码的情况. 主要原 ...

  8. android 获取apk里的xml文件

    今天,简单讲讲如何获取  apk里的xml文件. 之前的博客,我讲了如何获取apk的图片资源和反编译获取代码资源,但是如何获取XML资源呢? 一.回顾图片资源的获取: 首先准备一个apk,嘿嘿就是 ...

  9. android 获取文件夹下的所有文件

    昨天,在做工作时,需要遍历所有一个文件夹下的所有文件夹,当时自己也不知道怎么做,后来在网上搜索了一些资料,发现其实也很简单. 1.获取SD是否可以读写,如果可以,则传入文件的路径 /*读取输入的某个文 ...

最新文章

  1. 第一章 插件安装和代码导出
  2. fiddler+android抓包工具配置使用
  3. linux mysql temp 设置_linux上mysql的简单入门
  4. Hello Blazor:(8)启用深色模式
  5. django定时任务
  6. 计算两个日期间隔天数(距离(2024-7-7)间隔:1999天)
  7. HTML示例08---CSS3概述
  8. android 笔记本推荐 2015年,IDC:Android平板份额2015年将超iPad
  9. UE4官方文档阅读笔记——蓝图可视化编程
  10. 光域网(IES)在Unity3d中的应用【2020】
  11. 家庭计算机上网必须用到的设备,家庭网络中常见的几种网络设备介绍
  12. CMP是什么意思?谁能解释下?
  13. 智能证件录入系统——电子护照阅读器
  14. 关于CSS媒体查询--电脑尺寸大全
  15. 遥感领域旋转目标检测OBB记录
  16. TFmini Plus 在开源飞控 pixhawk 上的应用
  17. 线性代数(一)-行列式
  18. Chrome 护眼插件
  19. Python每日bug定时发送飞书群
  20. 防范勒索软件的分层办法

热门文章

  1. 五、Lua 变量的学习
  2. NDIS开发[网络驱动开发] NDIS开发1
  3. 【口才】谈判说服技巧及策略
  4. 报错 - 使用marked报错 marked__WEBPACK_IMPORTED_MODULE_4___default(...) is not a function
  5. 玩转树莓派 一、为你的树莓派烧录系统镜像
  6. java 文档处理界面_java – 如何设置Word文档的页面方向?
  7. C语言编程工具Dev C++的安装教程
  8. windows 自带计算器介绍
  9. java面试答题软件,Java面试题库
  10. c语言测试软件的编写,用c语言编写智商测试软件