闲闲流水

c#读取ini文件时遇到的问题

c#读取ini文件时主要遇到的问题是读取的中文都是乱码,原因是ini文件的编码方式不对,应该是以ANSI格式进行编码。

下面介绍读取ini文件的方法:

示例1:

[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section,Ident, Default,temp, 255, m_iniFileName);
return temp.ToString();

示例2:

[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
private static extern int GetPrivateProfileString(
string ApplicationName, string KeyName, string DefaultString,
[MarshalAs(UnmanagedType.LPArray)] byte[] lpBuffer, int nSize, string FileName);

 

int size = 260;
byte[] buff = new byte[size];
int ret = GetPrivateProfileString(Section, Ident, Default, buff, size, m_iniFileName);
if (ret < 0)
return null;
byte[] arry = new byte[ret];
for (int i = 0; i < ret; i++)
{
arry[i] = buff[i];
}
return System.Text.Encoding.Default.GetString(arry);

这两种方法口能实现对中英文的读取,关键是ini文件应该以ANSI格式进行编码。

posted on 2013-03-16 03:39  闲闲流水  阅读(2077)  评论(0编辑  收藏  举报

导航