向 诺基亚 塞班手机中 批量导入 通讯录(csplit iconv)

发布时间:2014-03-21 14:32:25作者:iami

惯例,还是先说方法。

需要借助的工具:诺基亚PC套件(windows),csplit,iconv

第一步:从源手机上到处通讯录为cvf格式,安卓手机都没问题吧。

第二步:使用csplit分割为1.vcf,2.vcf,3.vcf ...

vi打开vcf文件你会发现它以BEGIN:VCARD开头,已END:VCARD结尾。PC套件的导入只能单个导入,所以要分割开。csplit可以根据指定的匹配方式分割文件。命令:

[code]$ csplit book.vcf /BEGIN:VCARD/ -n 1 {*} -f "" -b"%1d.vcf"[/code]

/[]/ 之间的是开始分割的匹配表达式

-n 指定分割后文件名后缀数字的位数 如1,2,3或者01,02,03

-f 指定前缀

-b 指定后缀,类似printf函数格式

{整数} 表示根据匹配重复执行分割,*表示直到文件结束

-s 可指定为静默模式,不打印输出

如果不许要前缀,需要-f “”,否则会以xx开头。

第三步:iconv转换cvf文件格式

PC套件只认GB2312编码,否则中文变乱码。命令:

[code]for file in `ls *.vcf`;
do
iconv -f utf-8 -t gb2312 $file > $file.new;
mv $file.new $file;
echo "iconv $file finish";
done
for file in `ls *.vcf`; do sed 's/CHARSET/d/' $file > $file.new; mv $file.new $file; echo "sed $file finish";done
[/code]

我的系统用的utf-8编码,所以-f utf-8,如果你用的gb2312就不用转了。gbk行不行我没试。

另外,备注里面的格式搞不懂,不能考转换编码方式转换,索性就删除了。有懂的朋友可以说一下。

第四步:PC套件导入cvf到手机

插上手机选PC套件模式,连接后打开通讯录,文件菜单选导入,选择所有cvf文件确认即可。尴尬的是,转完编码以后,往里导入的时候,一次不能选择太多,否则就会有一部分导入失败,一次二三十个就没问题。可以直接吧vcf文件拖到“诺基亚通信中心”的联系人界面上。

换了个手机号,旧号码再用一段时间,因此有用起了五年前买的诺基亚7310c(我还是挺喜欢这小手机的),需要把安卓系统中通讯录导入到这里面。问题来了,直接传肯定不行,这俩机子语言不通啊,用上次用QQ同步,这s40系统每导入一个名片就要按一次确认(没法设置,我已经试过了),按了一个多小时,现在想起来还佩服当时的耐力。

这个方法应该也适用于s60系统,诺基亚的应该都能用。以后再试试csv的方法吧,csv的问题在于字段名和顺序可能不一样,就拿foxmail通讯录导出的csv文件导入到thunderbird中来说,还得先把格式调一样了。