如何处理特殊字符在CSV文件中

问题描述:

我在我的应用程序问题中创建csv文件我面临的是,虽然编写正常代码来创建csv文件我能够管理新行字符,但无法处理(,)在内容,如果我使用的是opencsv库,它将处理(,),但如果字符串中有新的行字符,则会将所有内容留在\ n旁边。请建议如何处理它。如何处理特殊字符在CSV文件中

while (cursor.moveToNext()) 
     { 
        String _address=cursor.getString(cursor.getColumnIndexOrThrow("address")); 
        if(_address!=null) 
        writer.append(_address); 
        else 
        writer.append("Unknown"); 

        writer.append(','); 

        String _body=cursor.getString(cursor.getColumnIndexOrThrow("body")); 
        if(_body.contains("\n")) 
         _body=_body.replace("\n", "\\n"); 
       if(_body!=null) 
        writer.append('"'+_body+'"'); 
       else 
        writer.append(""); 
        writer.append(','); 

        String _IsRead=cursor.getString(cursor.getColumnIndexOrThrow("read")); 
        writer.append(_IsRead); 
        writer.append(','); 
        String SmsDate = cursor.getString(cursor.getColumnIndexOrThrow("date")); 
        writer.append(SmsDate); 
        writer.append(','); 
        // writer.append(cursor.getString(cursor.getColumnIndexOrThrow("type"))); 
        if (cursor.getString(cursor.getColumnIndexOrThrow("type")).contains("1")) 
        writer.append("Inbox"); 
        else 
        writer.append("Sent");      
        writer.append('\n'); 
      } 

为什么不这样做的Excel做什么:

  1. 如果有双引号,然后再添一个。
  2. 每个项目都用双引号。

您可以在将数据写入CSV文件之前对其进行预处理。 字符','可以替换为'〜'之类的字符或任何其他字符,数据发生的概率非常小。这不是一个傻瓜证明的解决方案,但完成工作。

+0

这是一个坏主意 – Supreet 2013-04-05 10:38:17

+0

也许你可以把数据写成'\ n'分隔的文本文件,就像任何其他文件一样,那么就不会有任何问题。 – Kishore 2013-04-05 10:59:22