在我的Logger類中,它將所有錯誤,信息和調試消息寫入.csv文件。我想記錄一個包含標點符號的字符串。我有我返回當前Android版本是這樣的方法:在.csv文件中跳出標點符號
public String getAndroidVersion() {
androidVersion = android.os.Build.VERSION.RELEASE;
return androidVersion;
}
日誌記錄編碼是這樣的:
logToFile(String.format("%s;%s;%s;%s;%s\r\n", new Date().toString(), level,_processName, message, "\""+utils.getAndroidVersion()+"\""));
我希望最後一欄包含了Android版本,這是4.2.1,但它會以某種方式將其轉換爲如下數據:04.02.2001
。我知道方法getAndroidVersion
的返回值是正確的。正如你在上面的例子中看到的,我試圖逃避這個角色。
這裏發生了什麼,我使用錯誤的轉義字符?
謝謝!
編輯。當我在notepad++
打開.csv文件,它看起來像這樣:
Date;Level;Process;Message;AndroidVersion
Mon Jan 07 13:37:51 CET 2013;INFO;Splash Screen;Application Started;"4.2.1"
Mon Jan 07 13:38:00 CET 2013;INFO;Bluetooth MessageHandler;Incomming file from VMw-1001500;"4.2.1"
Mon Jan 07 13:38:13 CET 2013;INFO;Bluetooth MessageHandler;File Received From VMw-1001500;"4.2.1"
Mon Jan 07 13:38:29 CET 2013;ERROR;BluetoothCommunicator;socket closed;"4.2.1"
Mon Jan 07 13:38:29 CET 2013;ERROR;BluetoothCommunicator;read failed, socket might closed, read ret: -1;"4.2.1"
這看起來像它應該,但出類拔萃的格式我的.csv錯不知何故?
嗨,你看「2001年4月2日」,在您的CSV文件打開一些文本編輯器(如記事本),或者你看到它時,CSV文件導入並在EXEL或開放式辦公室解析? –
請檢查我的編輯。謝謝。 –
CSV沒有類型,所以你不能說如何程序必須解釋導入的價值。一種可行的方法是在導入後對列進行格式化,或者將csv中的值轉換爲另一個不能被視爲數據的字符串。也許加入一個+或空格。 –