mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
修复\n#出现在双引号中解析错误问题
This commit is contained in:
parent
db5806f0e8
commit
f4d67ede39
@ -2,7 +2,7 @@
|
||||
# 🚀Changelog
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
# 5.8.29(2024-06-30)
|
||||
# 5.8.29(2024-07-01)
|
||||
|
||||
### 🐣新特性
|
||||
* 【core 】 DateUtil增加offsetYear方法
|
||||
@ -27,6 +27,7 @@
|
||||
* 【http 】 修复Mac下的微信浏览器被识别为移动端问题(issue#IA74K2@Gitee)
|
||||
* 【core 】 修复Tailer指定初始读取行数的计算错误问题(issue#IA77ML@Gitee)
|
||||
* 【http 】 修复getFileNameFromDisposition获取头错误问题(issue#3632@Github)
|
||||
* 【core 】 修复\n#出现在双引号中解析错误问题(issue#IA8WE0@Gitee)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
# 5.8.28(2024-05-29)
|
||||
|
@ -240,7 +240,8 @@ public final class CsvParser extends ComputeIter<CsvRow> implements Closeable, S
|
||||
if(preChar < 0 || preChar == CharUtil.CR || preChar == CharUtil.LF){
|
||||
// 判断行首字符为指定注释字符的注释开始,直到遇到换行符
|
||||
// 行首分两种,1是preChar < 0表示文本开始,2是换行符后紧跟就是下一行的开始
|
||||
if(null != this.config.commentCharacter && c == this.config.commentCharacter){
|
||||
// issue#IA8WE0 如果注释符出现在包装符内,被认为是普通字符
|
||||
if((false == inQuotes) && null != this.config.commentCharacter && c == this.config.commentCharacter){
|
||||
inComment = true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package cn.hutool.core.text.csv;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* https://gitee.com/dromara/hutool/issues/IA8WE0
|
||||
*/
|
||||
public class IssueIA8WE0Test {
|
||||
@Test
|
||||
public void csvReadTest() {
|
||||
final CsvReader csvReader = new CsvReader();
|
||||
final CsvData read = csvReader.read(FileUtil.file("issueIA8WE0.csv"));
|
||||
final List<CsvRow> rows = read.getRows();
|
||||
|
||||
assertEquals(1, rows.size());
|
||||
assertEquals(3, rows.get(0).size());
|
||||
assertEquals("c1_text1", rows.get(0).get(0));
|
||||
// 如果\n#出现在双引号中,表示实际的文本内容,并不算注释
|
||||
assertEquals("c1_text2\n#c1_text2_line2", rows.get(0).get(1));
|
||||
assertEquals("c1_text3", rows.get(0).get(2));
|
||||
|
||||
IoUtil.close(csvReader);
|
||||
}
|
||||
}
|
2
hutool-core/src/test/resources/issueIA8WE0.csv
Normal file
2
hutool-core/src/test/resources/issueIA8WE0.csv
Normal file
@ -0,0 +1,2 @@
|
||||
c1_text1,"c1_text2
|
||||
#c1_text2_line2",c1_text3
|
|
Loading…
x
Reference in New Issue
Block a user