0
我想一個schema.ini文件(通過CSV導出創建)轉換到類型化的數據表在C#中。我在從文件中獲取表名時遇到麻煩。該SCHEMA.INI看起來是這樣的:如何建立從SCHEMA.INI一個DataTable的架構有特殊字符
[MyTableÄ.csv]
ColNameHeader=True
CharacterSet=1201
Format=CSVDelimited
CurrencyThousandSymbol=,
DecimalSymbol=.
Col1="Id" Integer
Col2="Subscriber Equipment" Char ...
但是當我用下面的代碼片段閱讀部分的名字,我得到MyTableÄ.csv
而不是MyTableÄ.csv
。
public string[] SectionNames()
{
uint MAX_BUFFER = 32767;
IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER);
uint bytesReturned = GetPrivateProfileSectionNames(pReturnedString, MAX_BUFFER, path);
if (bytesReturned == 0)
{
Marshal.FreeCoTaskMem(pReturnedString);
return null;
}
string local = Marshal.PtrToStringAnsi(pReturnedString, (int) bytesReturned);
Marshal.FreeCoTaskMem(pReturnedString);
//use of Substring below removes terminating null for split
return local.Substring(0, local.Length - 1).Split('\0');
}
我試過了人物:20127, ANSI, 65001, Unicode, and 1201
無濟於事。想法?解決方法?
謝謝!我認爲代碼是從其他地方複製過來的,但我不知道源代碼。我已經更新了我們如何將schema.ini編寫爲Unicode編碼,並進行了您所建議的更改以及一切正常。 – Kim 2013-02-19 20:06:27