android中intent带Uri传输时中文的乱码问题
来源:互联网 发布:squid软件 编辑:程序博客网 时间:2024/06/06 02:38
工作时遇到一个问题,我在VideoActivty中找到一个视频文件,启动Gallery3D中的MovieView来进行播放,然后在MovieView端得到此文件的路径。我当时传进了一个:
String mpath = "/mnt/sdcard/叶问2.mp4";
的路径,其中文件名是中文的。然后我在MovieView中得到的文件名竟然是乱码,最开始我是这么处理的:
VideoActivty处的代码大致为:
- String mpath = "/mnt/sdcard/叶问2.mp4";
- String type = "video";
- File f = new File(mpath);
- Uri uri = Uri.fromFile(f);
- Intent intent = new Intent();
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setAction(android.content.Intent.ACTION_VIEW);
- intent.setDataAndType(uri, type);
- this.startActivity(intent);
String mpath = "/mnt/sdcard/叶问2.mp4"; String type = "video"; File f = new File(mpath); Uri uri = Uri.fromFile(f); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(uri, type); this.startActivity(intent);
MovieView处理时用了异想天开的转码方式:
- path = new String(mUri.toString().getBytes("utf-8"), "GBK");
path = new String(mUri.toString().getBytes("utf-8"), "GBK");
发现无论怎样处理都无法转成中文。通过查看官方文档发现URI把我们的path转成了RFC 2396格式,不懂啊。。。
其实URI已经考虑到了这种情况。琢磨后用了这种方式得到了中文路径。
- Intent intent2 = getIntent();
- Uri mUri = intent2.getData();
- String path = intent2.getDataString();
- path = Uri.decode(path).substring(7, path.length());
- android.util.Log.d("URI", "path is " + path);
Intent intent2 = getIntent(); Uri mUri = intent2.getData(); String path = intent2.getDataString(); path = Uri.decode(path).substring(7, path.length()); android.util.Log.d("URI", "path is " + path);
Uri.decode函数Google已经帮我们实现好了。只是我这个码农没有发现。。。。。。记录于此,供后来人参考。
0 0
- android中intent带Uri传输时中文的乱码问题
- android中intent带Uri传输时中文的乱码问题
- android中intent带Uri传输时中文的乱码、android 获取文件名乱码处理方法
- Android Uri带中文乱码问题
- Android Uri如何在intent中传输
- Uri 中文乱码问题
- 解决Android与服务器传输中文出现乱码的问题。
- 彻底解决网络传输过程中出现的中文乱码问题
- 解决URI中文乱码问题
- JSP中URL中文乱码问题!get提交时,服务器端乱码,url带中文参数乱码
- 带中文的url的乱码问题
- Android中URI的理解(与Intent的联系)
- android中Intent和uri的应用实例
- 在android下出现乱码的问题(在网络中传输和获取数据时)
- Servlet传输过程中解决中文乱码问题
- JSP中URL中文乱码问题!get提交时,服务器端乱码,url带中文参数乱码 [2]
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- Spring 反射注入+全注解注入
- 不要只和结婚的人谈恋爱 //转自《拆掉思维里的墙》
- Spring ref属性配置
- C++/C博客记录
- [BZOJ1041][HAOI2008][数学乱搞]圆上的整点
- android中intent带Uri传输时中文的乱码问题
- Nginx自定义模块编写:根据post参数路由到不同服务器
- codechef The Ball And Cups题解
- mini2440之--leds程序
- maven项目添加jar包.
- the msi failed
- IIS防盗链:ISAPI Rewrite图片防盗链规则写法
- undone有关链表
- db2日期和时间常用汇总