mysql数据库有一字段里的数据含有 "和,,见下图:
在生成csv文件时,会被分割为:
导致数据错位。
解决思想:
某字符含有逗号时,将该字符用双引号引起来,那么字符里的逗号将不会被解析;
含有双引号时,可替换为两个双引号。
部分代码如下:
String handleStr=str;
//先判断字符里是否含有逗号
if(str.contains(",")){
//如果还有双引号,先将双引号转义,避免两边加了双引号后转义错误
if(str.contains("\"")){
handleStr=str.replace("\"", "\"\"");
}
//将逗号转义
handleStr="\""+handleStr+"\"";
}
此时,导出为csv文件不会出现错位问题。如下:
在读取一行中的各个数据时,每读取一个需加逗号。
String rowStr = sb.append(handleStr).append(",").toString();
基本解决了我遇到的问题。