解决URl中文路径乱码问题
来源:互联网 发布:无损鉴别软件 编辑:程序博客网 时间:2024/05/21 11:37
URl用中文去访问是没有问题的,因为android在内部进行了转码。 但是从URL获取文件名的时候,因为android已经转过码,所以得到的就是乱码了。这时候需要用到android提供的方法Uri.decode()获取正确的中文路径。 此方法返回的路径带有:file:// 所以,需要截取一下才能用。
工作时遇到一个问题,我在VideoActivty中找到一个视频文件,启动Gallery3D中的MovieView来进行播放,然后在MovieView端得到此文件的路径。我当时传进了一个:
String mpath = "/mnt/sdcard/普哈佛得分.mp4";
的路径,其中文件名是中文的。然后我在MovieView中得到的文件名竟然是乱码,最开始我是这么处理的:
VideoActivty处的代码大致为:
- 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");
发现无论怎样处理都无法转成中文。通过查看官方文档发现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);
Uri.decode函数Google已经帮我们实现好了。
0 0
- 解决URl中文路径乱码问题
- 解决URL中文乱码问题
- 解决android获取URL中文路径乱码
- URL中文乱码问题的解决
- ajax 解决url中文参数乱码问题
- 解决URL请求的中文乱码问题
- 解决URL中文参数乱码的问题
- 解决URL中文参数乱码的问题
- 解决 ThinkPHP URL 中文乱码问题
- ExtJS04:解决URL传递中文乱码问题
- 解决URL传递中的中文乱码问题
- PHP解决URL中文GBK乱码问题
- 解决url传递中文参数乱码问题
- 解决Url带中文参数乱码问题
- 解决URL传递中文乱码问题。
- 解决Url带中文参数乱码问题
- 关于解决URL中中文乱码问题
- 解决Url带中文参数乱码问题
- jquery跟js初始化加载的多种方法
- Android Development with OpenCV官方文档——实例priview frame
- __stdcall __cdecl
- Database Systems the Complete book 阅读笔记 chapter 13
- qt自定义按钮去除边框和背景色
- 解决URl中文路径乱码问题
- sgu 176 有源汇有上下界的最小流模板题
- 水处理过滤器:袋式过滤器在水处理领域中的技术特点体现
- js刷新页面方法大全
- 语音识别的一些概念
- zepto中animate的用法
- [水]ZOJ2812
- 动态规划示例四
- 如何清理监听日志