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格式进行编码。

转载于:https://www.cnblogs.com/lzb-feng/archive/2013/03/16/2962447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值