Apache-Commons-CSV Добавление дополнительных символов двойной цитатыJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apache-Commons-CSV Добавление дополнительных символов двойной цитаты

Сообщение Anonymous »

Я работаю над проектом Kotlin, где мне нужно взять некоторые входящие данные и вывести строку форматированной CSV. Я решил попробовать использовать библиотеку CSV Apache-Commons для обработки создания вывода CSV. Хотя в основном это работает, есть какое-то странное поведение в том, как оно обрабатывает двойные цитаты в входящих данных. Если я правильно понимаю правила форматирования CSV, строка, содержащая двойную цитату, должна сбежать с дополнительной двойной цитатой. Так что, если моя входная строка - «foo, выходная строка должна быть« foo. Однако, когда я строю свою выходную строку с помощью csvformat, я вместо этого получаю выход »« Foo. < /P>
Почему я получаю дополнительную двойную цитату в выходе? Это ошибка или ожидаемое поведение? Есть ли способ обойти это без полного отключения цитирования?fun Rosters.toCsvString(includeHeader: Boolean): String {

val writer = StringWriter()
val builder = CSVFormat.DEFAULT.builder().setQuoteMode(QuoteMode.MINIMAL)
if(includeHeader){
builder.setHeader(Rosters.Header::class.java)
}
val printer = CSVPrinter(writer, builder.get())
return writer.use {
printer.printRecords(this.rosters.map { it.values() })
writer.toString()
}

}
< /code>
Если я запускаю тест на эту функцию: < /p>
@Test
fun `Test convertRosterToCsvWithSpecialChars`()
{
val expected = """
EPPN,FirstName,LastName,Email,ClassStanding,StudentID,Degree,College,Department,SuitableRole
""foo014"",Foo,Bar,[email protected],,9200#8210,,,,ROLE_TENANT_ADVISOR,

""".trimMargin()

val worker1 = Roster("\"foo014\"","Foo","Bar","[email protected]",
studentId = "9200#8210", suitableRole = "ROLE_TENANT_ADVISOR")

val incomingRosters = Rosters(listOf( worker1))
val actual = incomingRosters.toCsvString(true)
assertThat(actual).isEqualToNormalizingNewlines(expected)
}
< /code>
Я получаю ошибку: < /p>
Expecting actual:

"EPPN,FirstName,LastName,Email,ClassStanding,StudentID,Degree,College,Department,SuitableRole
"""foo014""",Foo,Bar,[email protected],,9200#8210,,,,ROLE_TENANT_ADVISOR
"
to be equal to:
"EPPN,FirstName,LastName,Email,ClassStanding,StudentID,Degree,College,Department,SuitableRole
""foo014"",Foo,Bar,[email protected],,9200#8210,,,,ROLE_TENANT_ADVISOR,
"
when ignoring newline differences ('\r\n' == '\n')


Подробнее здесь: https://stackoverflow.com/questions/796 ... characters
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Apache-Commons-CSV Добавление дополнительных символов двойной цитаты
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Apache-Commons-CSV Добавление дополнительных символов двойной цитаты
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Модули Spring.jcl и org.apache.commons.logging экспортируют пакет org.apache.commons.logging в модуль Spring.data.jdbc'
    Anonymous » » в форуме JAVA
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Записать список в CSV по столбцам apache poi или commons CSV
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Twig - замена двойной цитаты в HREF внутри описания данных
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»