2014-03-26 93 views
4

這可能會複製到C CSV API for unicodeHow can I read and parse CSV files in C++?,但不完全相同。第一個是談論一個C庫,它有可能工作,但需要修改一些代碼。第二個沒有提到關於unicode的支持。我寧願開一個新的問題,而不是污染現有的問題。C++中支持Unicode的CSV解析器

由於我不是i18n和unicode編碼的專家,我只是想知道是否有這樣一個C++開箱即用的庫?

目前,我的最大努力是在C++中調用Python的csv解析器,這很慢。

+1

你也許可以在github上找到「現貨供應」的東西......或者你可以在30分鐘內寫下你自己的東西。 –

+2

C++語言對待Unicode是一種糟糕的體味。使用ICU庫的東西是不可修復的,它是樣板。通常的掛斷是希望儘快停止使用ICU,只要使用它來轉換文件/文本並儘快恢復到std :: string或const char *友好的Mr Rogers附近。大錯。無論如何,使用C++進行文本轉換沒有任何實際意義,Python會盡快完成。文件轉換是I/O綁定的,它不需要快速語言。 –

+0

@HansPassant嗯,我不能選擇其他語言。我正在爲sqlite3編寫一個CSV加載程序,它必須內置到.so文件中。簡單的CSV加載器與sqlite3不支持i18n正確,所以我必須自己實現一個。 –

回答

0

從CSV的角度來看,它實際上並不重要。因爲,所有傳統的CSV控制字符都位於較低的ASCII區域,並且對於所有ASCII和Unicode變體都是相同的。您應該問「我如何將文件內容讀寫爲Unicode字符流」in your particular programming language。然後,您可以將該字符流解釋爲您想要的任何格式,包括CSV。