我只知道UTF-8和GB2312编码,这是网页中常用的编码.今天在将Sony EricssonT618手机中的电话号码备份时,居然碰到了UTF-7编码.
过程是这样的:我将电话簿用蓝牙发送到笔记本电脑中,得到一个42KB的名为Whole Phonebook.vcf文件.双击一下,结果导到groupwise的地址簿中了,导进去了还了还好,可是导进去后看不到名字,只能看到一些VGhTTlFJ和n5pe+lb9这样的名字,电话号码都不在了。我改用记事本打开,原来这只是一个ANSI的文本文件:
VERSION:2.1
N:Zola;
TEL;HOME:+85298515555
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:Yo;
TEL;HOME:+8613555555542
END:VCARD
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-7:+nsSUaw-;
TEL;HOME:13777778890
END:VCARD
BEGIN:VCARD
VERSION:2.1
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-7:+n5pe+lb9-;
TEL;HOME:1365094444
END:VCARD
但是,这样,我还是看不到我存在电话本里的中文名字。难道CHARSET=UTF-7:后面的+n5pe+lb9-就是用UTF-7编码后的中文名?
我又用改charset笨办法:
<meta http-equiv="Content-Type" content="text/html; charset=utf-7" />
<title>UTF-7 Encoding</title>
</head><body>
BEGIN:VCARD
VERSION:2.1
N:Zola;
TEL;HOME:+85298515555
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:Yo;
TEL;HOME:+8613555555542
END:VCARD
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-7:+mthc8A-;
TEL;HOME:13777778890
END:VCARD
BEGIN:VCARD
VERSION:2.1
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-7:+n5pe+lb9-;
TEL;HOME:1365094444
END:VCARD
</body></html>
我将上面的代码另存为encode.htm,然后用浏览器打开,好了,那些电话号码的名字被翻译成中文了:
中文名字总算是翻译过来了。不过还是有些一乱码在里面。那些乱码,是因为UTF-7的编码是以+号开头–号结尾的,结果浏览器把+85298515555解析成乱码了。
后来,上网搜索了一个软件叫MView Convert来转换编码,它也会将没有-号结尾的的字符串当成UTF-7编码来解析。我只好把+86全部改为0086,这样就避免了乱码。写乱码大全的bluesea真是个牛人。 [lol]
对了,如果手机中的电话号码设置了来电大头像的话,那个图片会以BASE64编码存在于Whole Phonebook.vcf中,里面将含有这样的一段开头的内容:PHOTO;ENCODING=BASE64;TYPE=JPEG:,如果不含图片内容的编码的话,我的电话簿不会有42KB之巨。 [razz]
我靠,我能问问你是什么手机嘛?第一次看到这种编码。如果是主流手机,那么365kit.com就必须支持这种编码,天啊!!
to virushuo:我用的是索爱T618,Sony EricssonT618。
呵呵,再TO一下 virushuo:
他用的是SE T618,在文中说过了哦
不过现在也有直接导成.txt文档的机子,
不过我的不是,我的是S6.0的自己的格式的。
嘻嘻
很不错,我也遇到类似麻烦。。
后来尝试用word打开,默认选择UTF-7码,可以读取,呵呵。。。
只是用outlook还是无法正常使用。。。呵呵
hehe,被害的不是一个两个啊!!utf-7很不方便,我也深受其害.
在vcf里改挺麻烦的.