vs2010读取INI文件字符编码问题(中文字符乱码)

vs2010读取INI文件字符编码问题(中文字符乱码)

一、整体说明

我用的是vs2010进行项目编写,点开项目-》属性-》常规-》字符集可看到选择的字符集,vs2010默认应该是UNICODE,于是我打开了我的ini文件,我把它另存为一下,右下角有选择编码格式,ANSI改成utf_16,再执行,中文文字显示正常。

在百度上百度这个问题,得到了下面的回答:
你的INI文件是什么编码。打开INI文件,另存为,下面选择编码。如果你的程序非UNICODE,就选择ANSI,如果你的程序时UNICODE就选择UNICODE,另存为以后再读取。UTF-8的编码在VC里面无法正常显示。需要转换为ANSI或UNICODE

二、编码介绍

先讲asc码 每个 ASC码占一个字节 1个字节=8个bit 也就是说ASC码最多只有256个 表示中文肯定是不够的 ,所以后面就有了中文编码 gb2312,一个gb2312占用两个字节 ,但是中文有了 日文韩文等也都有自己的编码,这个就很乱,后来就有了统一编码Unicode ,Unicode占用两个字节 ,但是代码一般都是英文的,占了两个字节多占用了一倍的存储,不利于传输和存储,于是就有了utf-8的格式 可变长编码,utf-8英文占用1个字节,汉字占用三个字节。
ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码

问题可继续深入研究,本文不做叙述。

参考文件:

https://bbs.csdn.net/topics/390426484?page=2&t=1513514019596

三、项目总结

其实很简单,如果vs用的Unicode,ini文件就得使用宽字节utf_16,vs用的多字节,ini文件就使用ANSI就可以了。
回头看我写的一个项目,因为默认用的Unicode,所以的宽字符,就显得很麻烦。这是时代和语言的进步吗,Unicode更进步了,转换效率更高了,但是缺点也很明显,英文占2个字节占用更多了,导致我在项目里面转字节转过去转过来的,因为是Unicode,加_T啊,用TEXT()啊,各种string,csting,char *,WideCharToMultiByte宽窄字符转换,看着就脑壳痛,都快把我弄疯了,为啥VS要用默认Unicode???是多字节不香了嘛?是因为时代的进步吗,哈哈,不同的编译软件,不同的软件使用不同的格式,真的就不能出一个统一的规范吗?

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值