c++ - CreateFileA 方法的问题
问题描述
我的应用程序在读取包含 Unicode 字符的文件时遇到问题。因为我正在使用该CreateFileA
方法获取数据,但它没有正确获取我面临很多问题的 Unicode 字符。另外,我不知道 和 之间的CreateFileA
区别CreateFileW
。
很抱歉我无法分享我的代码。我将与您分享我的那部分代码。
HANDLE systemFileHandle = INVALID_HANDLE_VALUE;
systemFileHandle = CreateFileA(Filename, GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
char* inBuffer=new char[totalFileSize+2];
memset(inBuffer, 0, totalFileSize+2);
ReadFile(systemFileHandle, inBuffer, totalFileSize, &bytesRead, nullptr);
And, I am getting the results on inBuffer array be like : Fernw�rmestationSW Au�en.
我不能以他们原来的方式得到它吗?
所以你能帮我解决这个问题吗?这会很有帮助。
解决方案
CreateFileA
采用基于 ANSI 的文件名,而CreateFileW
采用基于 Unicode 的文件名。关于文件的内容没什么好说的,两者都会返回一个HANDLE
文件,然后您可以根据需要读取/写入 Unicode 内容。
推荐阅读
- c# - 在 C# 中检查字符串是半角还是全角
- python - 调试 CPython 操作码堆栈
- r - 查找一行中所有并列的最大值,如果列包含最大值,则返回 true 或 false
- python - 引用单元测试中的相同实例(调用对象时不创建新实例)
- mongodb - MongoDB:尝试解释查询在排序内存限制上失败
- docker - Mac 上 docker 中的 awslogs 日志记录驱动程序出现 NoCredentialProviders 错误
- python - 为分类问题拆分数据集的正确程序是什么?
- php - URL GET 变量消失
- math - “奇偶校验”是否只能在一定范围内校验数据的正确性?
- javascript - 当只有一组 jQuery 时删除前置部分