【求助】问个难点的, 电话本的编码转换
从650里面导出的电话本, 里面的中文用的是"N;CHARSET=windows-1252".这样的编码, 在普通的手机里是不会显示出来的. 在电脑上基本显示乱码.
以前有一次, 经过复杂的转换, 用到了一个palm的pda, mac机, PC上的Outlook等等, 转成功一次. 但现在想不起来怎么弄了, 也实在是麻烦. 关键是找一个东西, 可以接受1252的编码并正确显示, 然后导出成utf编码就可以了. "N;CHARSET=UTF-8"
求简单易行的转换方法或软件. 真有这么难? 一个回帖都没有?! 试试100nb的威力:D
windows-1252就是Western European (windows)编码
用editplus等等文本编辑器就可以转换 其实很简单的。我以前也用过PALM,装上桌面同步软件,打开OUTLOOK同步,注意:是MS OFFICE里的的OUTLOOK
然后就可以把电话本同步到OUTLOOK里了,然后就不用我说了吧。 如果已经有一个编码正确的文件,粘贴不带编码的内容进去就是那个编码了 windows-1252,这个是俄文常用编码之一,中文不大可能用这个编码,估计是编码解析软件误判。
你截取一部分作sample给我看看,编码转换通常很简单。我一般用emeditor,另存为相应编码就行了。 原帖由 chippendale 于 2006-11-25 21:14 发表
其实很简单的。我以前也用过PALM,装上桌面同步软件,打开OUTLOOK同步,注意:是MS OFFICE里的的OUTLOOK
然后就可以把电话本同步到OUTLOOK里了,然后就不用我说了吧。
哦, 对了. 它自己带的桌面同步软件. 不用这个行不行? 因为根本没有装它. 不是很明白.
看过在一般手机上导出的文件, 是这样的:
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Chen=XX=XX=XX=XX=XX=XX
(XX那些当然原来是一个代码, 二个HEX数字)
真正要转换的就是这部分了.
原帖由 jarodpeach 于 2006-11-25 21:24 发表
如果已经有一个编码正确的文件,粘贴不带编码的内容进去就是那个编码了 再看了看, 如果是在已经有中文环境的时候在650上输入的中文, 虽然编码还是1252, 但在XP下可以正确识别, 显示, 导入Outlook也正确的.
如果一个一个联系人单独导出, 再导入Outlook是可以正确转换的. 但很显然这样太麻烦了.
从手机里面可以导出整个电话本, 所有的联系人都在同一个文件里面.如果导入这个大文件到Outlook, 它只认第一个.
这样看来, 只要有个办法, 把那个大的电话本文件切割成一个一个的小文件, 就可以了.
下面是一个vCard文件的sample, 大文件就是把一个一个这样的文件连在一起. 有明确的标志, 分割还是可能的.
另外, 里面也有几个要转换一下. 那些是comment, 也需要正确转换的.
BEGIN:VCARD
VERSION:2.1
X-PALM:4.0
N;CHARSET=windows-1252:Test;测试用户
CHARSET=windows-1252
ADR;WORK;CHARSET=windows-1252:;;工作地址;;;;
NOTE;CHARSET=windows-1252;ENCODING=QUOTED-PRINTABLE:=
=D2=BB=D0=A9=CB=B5=C3=F7
TEL;PREF;WORK;VOICE:075587654321
TEL;CELL:13912345678
UID:13264502
END:VCARD 需要特殊编码的就是那些中文。notepad能正常显示中文的话,直接查找 windows-1252 替换为 UTF-8 ,另存为时编码下拉框选 utf-8,然后保存。应该ok了。 原帖由 yiylu 于 2006-11-25 22:14 发表
需要特殊编码的就是那些中文。notepad能正常显示中文的话,直接查找 windows-1252 替换为 UTF-8 ,另存为时编码下拉框选 utf-8,然后保存。应该ok了。
嗯, 那么那些QUOTED-PRINTABLE怎么办? QUOTED-PRINTABLE 这行内容必须给完整的,我才能解码。 原帖由 yiylu 于 2006-11-25 23:21 发表
QUOTED-PRINTABLE 这行内容必须给完整的,我才能解码。
上面的就是完整的呀. 你不要管那个换行就行了.
四个中文字, 我看就是把那个"="去掉, 把hex拼起来, 二个字节代表一个中文字而已. 就是不知道用什么编码. 也许是MEMA64? 不是的,QUOTED-PRINTABLE 就是一种MIME编码方式,奇怪的是我把他看作gb2312解码出来是:覞袏司明。
有点奇怪,不管这个QUOTED-PRINTABLE项,按开头方法直接转换不能用吗?
[ 本帖最后由 yiylu 于 2006-11-25 23:42 编辑 ] 原帖由 yiylu 于 2006-11-25 23:41 发表
不是的,QUOTED-PRINTABLE 就是一种MIME编码方式,奇怪的是我把他看作gb2312解码出来是:覞袏司明。
有点奇怪,不管这个QUOTED-PRINTABLE项,按开头方法直接转换不能用吗?
把文件另存为UTF-8后载入电话是不行的.
行的时候, 编码的名字是UTF-8, 后面的中文是用quoted-printable来表示的.
上面的MEMA写错了, 我就是指MIME. 长久不用这些字, 都生疏了:(
所以, 现在的问题就是怎么样对quoted-printable进行转换了? 记得mime是用7位的来表示8位的吧? 应该有些标准的方法啊.
上面的那个四个中文字是"一些说明". 这样好了:你分别附上 未处理 和 处理好 的sample文件,我继续分析二者区别。相信很快会有结果。
还有将 vcard 样本的内容描述清楚,这样更好分析。
[ 本帖最后由 yiylu 于 2006-11-25 23:58 编辑 ] 直接放上vCard文件吧.
还有它在650上的样子. 貌似是这样.
1252的编码, Outlook是可以识别的. 但里面那些quoted-printable的内容, Outlook是不认识的.
只要Outlook显示正确, 再传到普通手机的时候, 显示也是正确的. 先能不能想个办法, 把一个大文件切成一个一个单独的vCard文件? hiahia...还是SE手机好~
同步到MS OUTLOOK很方便
再从OUTLOOK同步出去也方便 ~_~ =D2=BB=D0=A9=CB=B5=C3=F7
是GBK编码, 是"一些说明"四个汉字 我这里有一份UNICODE-GBK-汉字对照表, 还有一个根据这个进行UNICODE-GBK的砖码js代码 例如:
4ECE B4D3 从 4ED1 C2D8 仑 4ED3 B2D6 仓 4ED4 D7D0 仔 4ED5 CACB 仕
4ED6 CBFB 他 4ED7 D5CC 仗 4ED8 B8B6 付 4ED9 CFC9 仙 4EDD D9DA 仝
4EDE D8F0 仞 4EDF C7AA 仟 4EE1 D8EE 仡 4EE3 B4FA 代 4EE4 C1EE 令
4EE5 D2D4 以 4EE8 D8ED 仨 4EEA D2C7 仪 4EEB D8EF 仫 4EEC C3C7 们
4EF0 D1F6 仰 4EF2 D6D9 仲 4EF3 D8F2 仳 4EF5 D8F5 仵 4EF6 BCFE 件
4EF7 BCDB 价 4EFB C8CE 任 4EFD B7DD 份 4EFF B7C2 仿 4F01 C6F3 企
4F09 D8F8 伉 4F0A D2C1 伊 4F0D CEE9 伍 4F0E BCBF 伎 4F0F B7FC 伏
4F10 B7A5 伐 4F11 D0DD 休 4F17 D6DA 众 4F18 D3C5 优 4F19 BBEF 伙
4F1A BBE1 会 4F1B D8F1 伛 4F1E C9A1 伞 4F1F CEB0 伟 4F20 B4AB 传
4F22 D8F3 伢 4F24 C9CB 伤 4F25 D8F6 伥 4F26 C2D7 伦 4F27 D8F7 伧
4F2A CEB1 伪 4F2B D8F9 伫 4F2F B2AE 伯 4F30 B9C0 估 4F32 D9A3 伲
4F34 B0E9 伴 4F36 C1E6 伶 4F38 C9EC 伸 4F3A CBC5 伺 4F3C CBC6 似
4F3D D9A4 伽 4F43 B5E8 佃 4F46 B5AB 但 4F4D CEBB 位 4F4E B5CD 低
4F4F D7A1 住 4F50 D7F4 佐 4F51 D3D3 佑 4F53 CCE5 体 4F55 BACE 何
4F57 D9A2 佗 4F58 D9DC 佘 4F59 D3E0 余 4F5A D8FD 佚 4F5B B7F0 佛
4F5C D7F7 作 4F5D D8FE 佝 4F5E D8FA 佞 4F5F D9A1 佟 4F60 C4E3 你
4F63 D3B6 佣 4F64 D8F4 佤 4F65 D9DD 佥 4F67 D8FB 佧 4F69 C5E5 佩
4F6C C0D0 佬 4F6F D1F0 佯 4F70 B0DB 佰 4F73 BCD1 佳 4F74 D9A6 佴
4F76 D9A5 佶 4F7B D9AC 佻 4F7C D9AE 佼 4F7E D9AB 佾 4F7F CAB9 使
4F83 D9A9 侃 4F84 D6B6 侄 4F88 B3DE 侈 4F89 D9A8 侉 4F8B C0FD 例
4F8D CACC 侍 4F8F D9AA 侏 4F91 D9A7 侑 4F94 D9B0 侔 4F97 B6B1 侗 下载看了,内容就是gb2312的编码。
分析结果:
650 仅对 Note部分做了 quoted-printable 编码,但却用了 windows-1252 字符集,导致保存的内容错误,故无法正确解码。
也就是说650导出vcard的note项的内容早就给破坏了。
我猜想系统设置中应该能修改的,把 windows-1252 改为 gbk 或 gb2312。 看到 huanggx 兄的话了,这样的话那你直接将 windows-1252 替换为 gbk 保存看看,不必转为 utf-8 编码了。 quoted-printable类似于http的uriencoding, 只不过quoted-printable把%变为=了.
不知道LZ想怎样处理? 写个js或vbs就可以了 最简单的办法是,写一个html文件,加上js代码, 你把导出的vcard文件复制到页面的输入框里, 用js转成正确的格式,复制出来再保存 晕,刚找的解码器害了我,竟不支持中文。刚用 php解码 看了一下,果真就是:一些说明
这么来说,极大可能就是 " window-1252 " 改为 " gbk " 就能正确读取了。证明一下吧:D
[ 本帖最后由 yiylu 于 2006-11-26 01:04 编辑 ] 给兄弟一个编码转换器
很简单的,复制旧可以转换
前段时间改网页后台 用的
上传 太大了
convertz802编码转换工具
http://alf-li.pcdiscuss.com/files/convertz802.zip
[ 本帖最后由 jiyou 于 2006-11-26 01:07 编辑 ]