jasmine1

从百度网页上下载歌曲,歌曲名称显示乱码

0
阅读(46) 评论(3)

1.从百度网页上下载歌曲,歌曲名称显示乱码

[DESCRIPTION]
从百度网页上下载歌曲,歌曲名称显示乱码
[SOLUTION]
该问题属于Baidu server返回的Content Disposition中使用GB2312的编码
但并没有说明编码方式
手机端拿到GB2312的中文无法解析
默认使用utf-8导致乱码
当我们请求一个url时,如何来判断需要下载文件还是直接显示内容?
一般来说根据HTTP Response Header中的两项内容
MIME Type 和Content-Disposition
MIME Type 主要是告诉Client端文件的内容比如 application/otect-stream
而Content-Disposition则一般告诉Client端所下载的文件名
如果在Content-Disposition中没有填写的话,一般从url中guess
如果server在Content-Disposition中使用GB2312的编码给出中文时
我们这边无法得知该编码方式
便一般用UTF-8来解码,这样便会导致文件名为乱码的问题


2.启动桌面版网站,浏览某些网页还是手机版的页面
[DESCRIPTION]
启动桌面版网站,浏览某些网页还是手机版的页面
详细问题描述:
1、 进入android Browser的设置界面,勾选“请求桌面版网站”
2、 例如登录某网站后,点击“音乐”。
Result:有时打开的音乐的网页页面不是桌面版的,是手机版的网页mtk boost
[Solution]
只需修改alps/external/webkit/Source/WebCore/loader/FrameLoader.cpp
addExtraFieldsToRequest的某一行即可

...
简单解释修改的內容:
也就是在设定x-wap-profile之前,判断UserAgent是否包含有 "Android" 这个字串
如果有,才会将x-wap-profile加入Http request的header內
而目前请求桌面版网页所用的UserAgent,是不包含"Android"这个字串,
因此不会將x-wap-profile加入Http request的header內

  1. ew3jh3fjfof56voijw37of8fwfw

  2. 只需修改alps/external/webkit/Source/WebCore/loader/FrameLoader.cpp

    这个找不到


  3. 424ccbab8b6a8eae524bf3c603eaee60 拿到GB2312的中文无法解析怎么办