我有一個dbf文件,它有MONTRÉAL
作爲其中一個條目。我必須將這個dbf文件轉換成一個csv文件。在csv文件中寫法語字符#
爲此,我正在讀通過的Microsoft Visual FoxPro驅動程序驅動這個DBF文件,然後將每行轉換爲逗號分隔,然後寫所有線路,名爲「ASD.csv」文件。
但是在CSV文件MONTRÉAL
中顯示爲MONTR?AL
即代替É
a ?
字符出現。在將行寫入csv文件時,我嘗試使用UTF8編碼,但即使這樣也行不通。
請幫忙。
我有一個dbf文件,它有MONTRÉAL
作爲其中一個條目。我必須將這個dbf文件轉換成一個csv文件。在csv文件中寫法語字符#
爲此,我正在讀通過的Microsoft Visual FoxPro驅動程序驅動這個DBF文件,然後將每行轉換爲逗號分隔,然後寫所有線路,名爲「ASD.csv」文件。
但是在CSV文件MONTRÉAL
中顯示爲MONTR?AL
即代替É
a ?
字符出現。在將行寫入csv文件時,我嘗試使用UTF8編碼,但即使這樣也行不通。
請幫忙。
我執行幾年前使用:
var writer = new StreamWriter(fileStream, Encoding.Unicode);
writer.Write(csvContent.ToCharArray());
我想這應該工作,因爲相當長的一段語言是在我們的應用程序支持,包括日本人。
編輯: 作品蒙特利爾用記事本,記事本++,Excel和LibreOffice的...
我建議你使用UTF8編碼是這樣的:
using (StreamWriter writer = new StreamWriter("asd.csv", false, Encoding.UTF8))
{
writer.WriteLine("Id;City");
writer.WriteLine("1;Montréal");
writer.WriteLine("2;Québec");
}
這將添加一個BOM(Byte Order Mark)到CSV的開頭,然後你可以打開的Excel文件直接,甚至與標準Windows記事本成功。
什麼編碼是你正在閱讀的文件,你在閱讀它的編碼? –
您使用什麼應用程序查看CSV文件?它使用什麼編碼? CSV文件可能是正確的,但查看器使用了錯誤的編碼。 (沒有真正的CSV標準,也沒有CSV文件的首選編碼,並且該文件也沒有記錄使用的編碼,必須在生產和消費應用程序之間單獨商定。) – Codo
我使用Notepad ++查看CSV文件。 –