530能通過紅外線將手機中的電話號發送到電腦中,電腦接收到的是一份OUTLOOK通訊錄的名片文件。
我們可以利用這個功能來備份手機中的通訊錄。但是使用過的玩家一定會說不行,備份出來的文件是中文是亂碼不能看。現在我們來分析一下爲什麽是亂碼。
由于我們大陸用的是簡體中文的WINDOWS操作系統,該系統對于漢字的默認編碼方式爲GBK或GB2312。而手機中采用的編碼方式爲UTF-8的編碼方式。由于編碼方式的不統一導致我們傳入電腦的文件中的中文部分顯示爲亂碼。
知道了亂碼的産生原因我們可以通過編寫程序進行編碼方式轉換來達到消除亂碼的目的。我采用了JAVA來對文件中的中文進行編碼轉換。選擇JAVA的原因:
1、是因爲JAVA本身具有跨平台的功能,本身就有編碼轉換的API編寫起來容易。
2、是告訴大家JAVA的功能是很強大的530不支持JAVA的確是一種遺撼。好了言歸正傳,我們來說說轉碼過程。下面是進行UTF-8到GBK的轉換程序段,如果能看懂的朋友可以把它加入自己的程序內使用,如果不懂編程的朋友可以給我留言我會將編譯好的程序給發過去,或哪位朋友提供一個地方供大家下載。在使用程序前請先安裝SUN公司的JDK1.2.2以上版本。下面是JDK1.4.2.02的下載地址http://java.sun.com/webapps/download/Redirect/131148827/289386335946694772-931/j2sdk-1_4_2_02-windows-i586-p.exe 如果不能下載可到http://java.sun.com上查找。在完成轉換之後可以通過OUTLOOK中的通訊錄中導入功能來將轉換過的文件導入OUTLOOK。注:導入時選取名片那一項。
程序片段:
//將文件以UTF8的方式讀出,再以WINDOWS默入的編碼方式寫入。
try{
File f = new File(args[0]);
FileInputStream re1=new FileInputStream(f);
InputStreamReader re=new InputStreamReader(re1,"UTF8");
char[] buf = new char[(int)f.length()];
re.read(buf,0,(int)f.length());
String ss = new String(buf);
if(ss.indexOf("TEL:")>0)
ss=de.insertcalloption(ss);
FileOutputStream fout = new FileOutputStream(args[1]);
fout.write(ss.getBytes("gb2312"));
fout.close();
re.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
/**
*修改其中電話號碼行將其修改爲能導入OUTLOOK的格式。
*/
public String insertcalloption(String in) {
int i=0;
System.out.println(in);
i=in.indexOf("TEL:");
String ff=in.substring(0,i+3);
String mid=";CELL;VOICE";
String bb=in.substring(i+3);
in=ff+mid+bb;
return in;
}
至于如何將outLook中的通訊錄傳回手機,且聽下回分解。:)