Java 如何在大学里使用C式转义

Java 如何在大学里使用C式转义,java,univocity,Java,Univocity,我正在使用Univocity使用以下代码将ResultSet对象转换为csv格式字符串: `StringWriter stringWriter = new StringWriter(); CsvWriterSettings settings = new CsvWriterSettings(); settings.getFormat().setDelimiter('|'); settings.setQuoteAllFields(true); settings.setEscapeUnquotedVa

我正在使用Univocity使用以下代码将ResultSet对象转换为csv格式字符串:

`StringWriter stringWriter = new StringWriter();
CsvWriterSettings settings = new CsvWriterSettings();
settings.getFormat().setDelimiter('|');
settings.setQuoteAllFields(true);
settings.setEscapeUnquotedValues(true);
CsvRoutines csvRoutines = new CsvRoutines(settings);
csvRoutines.write(resultSet, stringWriter);
System.out.println(stringWriter.toString());`
我在这里试图实现的是使用setescapeunquettedvalues()对特殊字符进行转义。但我的结果是没有转义值。
示例:如果结果集包含1 | a,b,那么它应该将输出作为1 | a\,b

您的要求在CSV转义上下文中听起来不正确。使用
settings.setQuoteAllFields(true)所有值都将写在引号内,因此不需要在值内转义管道或逗号。在这种情况下,唯一需要转义的字符是引号字符本身。此外,分隔符(在您的示例中为管道)永远不需要转义。听起来您可能正在尝试生成TSV,使用管道而不是制表符。@JeronimoBackes您是对的,对于使用c样式转义的要求存在误解,管道(分隔符)不需要转义。我只想实现特殊字符的转义,如果结果集中有特殊字符的话。我尝试使用setEscapeUnquentValues(),但它不能转义特殊字符。您必须自己转义字符,因为“特殊字符”的定义取决于您的具体要求。@JeronimoBackes by special character,我指的是除a-z以外的任何字符,A-Z和0-9。这意味着有数千个潜在字符需要转义。你必须用手来实现。