驱动开发:英文版写txt文件乱码(Unicode字符写入问题)

在英文时区开发环境中,驱动写入中文文件出现乱码问题,主要原因是Unicode到Ansi转换受区域设置影响。解决方案包括:1) 使用其他Unicode到Ansi转换方法,如尝试不同转换函数;2) 直接写入Unicode,确保文件以Unicode编码类型保存,避免转换过程。通过调整写入字符格式和文件编码,成功实现中文的正确写入。
摘要由CSDN通过智能技术生成

由于开发环境中有英文版的需要,所以需要在时区设置为英文时区时,能使用驱动写中文文件。
相比在中文环境下,会产生的问题简单来说就是Unicode字符的写入问题。
写入函数主要是以下这个函数

ZwWriteFile(readFileHandle, NULL, NULL, NULL, &ioStatusBlock, conTwo, 2 * sizeof(WCHAR), &byteOffset, NULL);

1.原因

之前因为写入Unicode字符会有格式上的显示问题,所以在写入之前会进行转换:

 //写入content(Unicode),转换为string(ANSI STRING)
RtlUnicodeStringToAnsiString(&string, &content, FALSE);

然后这个转换直接导致了英文版下乱码显示,猜测的原因就是官网界面的这句话
RtlUnicodeStringToAnsiString函数说明
简单来说,就是这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值