关于读取 Unicode文件

以前做开发的过程中,遇到读取文件的情况,基本都是ANSI文件,而没有遇到过UNICODE文件。

最近在读取UNICODE 的文件过程中,却遇到了一些意想不到的问题。

现总结如下:

(1)文件的打开模式,读取ANSI文件时候,fopen(,"r"),CFile(,modeRead),其默认情况下是按文本

模式来进行读取。但是如果在文本模式下去wchar_t去读取数据,却经常发生一些意想不到的错误。

      例如,fread,经常结束,即使没有到文件结尾,也无法进行下面的读取。

              fgetws,则更是无法工作,读取出来的全是乱码。

(2)memset函数,第三个参数不是Item的个数,而是地址空间的字节数。

      例如,char chBuf[30];   memset(szBuf,0,30);  当然没有问题。因为,sizeof(char) = 1;

        但是wchar_t wchBuf[30];memset(wchBuf,0,30),出现的情况则是,只是对前15个字节进行了

        赋值。因为,sizoef(wchar_t) = 2,正确的写法为:memset(wchBuf,0,30*sizeof(wchar_t));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值