我有存儲在MS-Access數據庫表中的歐元符號:擴展ASCII字符,如歐元符號轉換爲它的Unicode等效
SELECT
CurrencySymbol,
Len(CurrencySymbol) AS DataLength,
Asc(CurrencySymbol) AS AsciiCode
FROM table1;
CurrencySymbol DataLength AsciiCode
-------------- ---------- ---------
€ 1 128
這裏是我用來閱讀的.NET代碼表:
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + args[0]);
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [table1]", connection);
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
for (i = 0, j = reader.FieldCount; i < j; i++)
{
System.Diagnostics.Debug.Print(reader.GetValue(i));
}
}
本來,我是在用數據寫入StreamWriter
到一個文本文件中。我注意到歐元符號寫爲€
,這可能是用UTF-8編碼的歐元符號的unicode。調試結果:
reader.GetValue(i).ToString() -> "€"
reader.GetValue(i).ToString().ToCharArray()[0] -> 8364 '€'
我怎麼能強制執行.NET來吐出輸出的擴展ASCII字符按原樣?這些字符應該被寫入一個CSV文件。
這些字符需要放在一個文本文件中 - 一個ANSI文本文件。 –
(這與現在刪除的評論有關,聲稱歐元符號不包含在任何ANSI編碼中):歐元符號在代碼頁1252(西歐)中,值爲128 –