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

时间:2013-04-05 09:36:44

标签: android

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

  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');
            }

2 个答案:

答案 0 :(得分:0)

为什么不做Excel所做的事情:

  1. 如果有双引号,则添加另一个。
  2. 每个项目都加上双引号。

答案 1 :(得分:0)

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