Android Media 播放mp3时ID3 tag 显示乱码的探究分析。(2)

所以又有人研究出来了UTF-8(Unicode Translation Format - 8)编码,UNICODE转换格式,对于常用字符使用单字节,汉字等使用双字节。8代表每次在网络上传输8位,如果是UTF-16就是每次传输16位。搞 过网络编程的朋友应该知道,字节序(就是字节的排放顺序)分为两种,主机字节序与网络字节序,就是大头(俗称)在前,小头在前的问题,在网络上面传输的流 的字节序很可能是不一致的,于是需要使用一种方法通知接收端,传输流的字节序。有人发明了一种简单的方法,在每个流的开始加上FFEF或EFFF,分别主 机与网络字节序,我们可以使用记事本保存一个UNICODE文件,再使用ue打开看看(HEX方式打开)。所以有时候网页传到网上,在网页最开始的地方会 出现一个字符,这个有时候很令人费解。

用记事本新建立两个文件存为UNICODE与UNICODE big endian模式,输入梦之都,保存再用ue打开。

UNICODE

FF FE A6 68 4B 4E FD 90

UNICODE big endian

FE FF 68 A6 4E 4B 90 FD (观察,没两个字节和上面的对比)

2,UNICODE与GBK等两字节编码完全不兼容,无法找到一种简单的方式转换(只能使用查找表的方式)

这点我们可以使用记事本新建立两个文件一个ansi的文件,另一个utf8的文件,分别写入梦之都 ,保存。使用ue的hex模式打开我们会看到。

UNICODE

FF FE A6 68 4B 4E FD 90

ansi

C3 CE D6 AE B6 BC

很著名的问题,如果用记事本输入“联通”保存,再打开,发现“联通”两个字没了!为什么没有了,大家可以自己分析一下。有人说这就是联通竞争不过移动的原因。

清楚了这些,那么我想,必须先判断出是什么国家文字的歌曲,再用什么方式去解ANSI标准码 ,最后转换成utf-8显示。概括一句话:让utf-8正确解析双字节的ANSI。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/25062.html