我想從.ini文件中讀取外部字符。 這是我使用文件讀取外來字符
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string Section,
int Key,
string Value,
[MarshalAs(UnmanagedType.LPArray)] byte[] Result,
int Size,
string FileName);
public static string[] GetEntryNames(string section, string iniPath)
{
for (int maxsize = 500; true; maxsize *= 2)
{
byte[] bytes = new byte[maxsize];
int size = Imports.GetPrivateProfileString(section, 0, "", bytes, maxsize, iniPath);
if (size < maxsize - 2)
{
string entries = Encoding.ASCII.GetString(bytes, 0,
size - (size > 0 ? 1 : 0));
Console.WriteLine("Entries: " + entries.Split(new char[] { '\0' })[3]);
return entries.Split(new char[] { '\0' });
}
}
}
的方法,我用但顯然GetPrivateProfileString
不是。來自它的字節可能需要編碼。我怎樣才能做到這一點?
編輯:例
這將打印:Tavar?而不是Tavaré
的
你確定這不是正確讀,而不是僅僅是'Console.WriteLine'? – LegionMammal978
@ LegionMammal978是的。將其設置在標籤上並得到相同的結果 –
@JohnP。嘗試使用'Encoding.UTF8'或'Encoding.GetEncoding(「iso-8859-1」)'法國字符 – Xiaoy312