Windows 2012 R2 编辑ini文本遇到的编码问题

在编辑ini文本文件时,UTF-8保存可能带BOM,导致C#使用系统DLL读取时字典缺失首域内容。同时,ANSI格式文件在不同语言操作系统下,如中文简体(GB2312)和英文(ANSI),可能出现中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编辑服务端配置文件时,发现对于ini文本文件:

需注意点一:如果另存为UTF-8保存的实际上格式是UTF-8-BOM编码格式;

但是两种格式是存在差异的:

 因此造成在使用C#调用系统DLL读取文件时并未报错,但是当使用对应INI文件内容时第一个域内的内容不存在于字典中:
 

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

 需注意点二:如果保存的是ANSI格式,如果文本中有中文或中文字符;

实际文件格式与操作系统有关系,

对于中文简体操作系统,格式是GB2312(简体中文);

对于英文操作系统,格式是ANSI但是,中文或中文字符数据出现乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值