私の Logger クラスでは、すべてのエラー、情報、およびデバッグ メッセージを .csv ファイルに書き込みます。句読点を含む文字列をログに記録したい。次のように、現在の Android バージョンを返すメソッドがあります。
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()+"\""));
最後の列には 4.2.1 の Android バージョンが含まれていると予想されますが、何らかの形で次のようなデータに変換されます04.02.2001
。メソッドの戻り値getAndroidVersion
が正しいことはわかっています。上記の例でわかるように、文字をエスケープしようとしました。
ここで何が起こっているのですか? 間違ったエスケープ文字を使用していませんか?
ありがとう!
編集 。.csv ファイルを開くと、notepad++
次のようになります。
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"
これはあるべきように見えますが、Excel は私の .csv を何らかの形でフォーマットしますか?