我需要从文件中读取 Unicode 字符。我唯一需要做的就是提取它们的 Unicode 编号。我使用 CodeBlock Mingw 在 Windows XP 上运行。
我正在做这样的事情
#define UNICODE
#ifdef UNICODE
#define _UNICODE
#else
#define _MBCS
#endif
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
int main()
{
wchar_t *filename=L"testunicode.txt";
FILE *infile;
infile=_wfopen(filename,L"r");
wchar_t result=fgetwc(infile);
wprintf(L"%d",result);//To verify the unicode of character stored in file,print it
return 0;
}
我得到的结果一直是 255。
testunicode.txt 存储在 Encoding=Unicode 中(通过记事本创建)
最后的任务是从一个文件中读取,该文件可以包含任何语言的字符,但 wchar_t 只有 2 个字节,所以它能够获取所有可能的语言字符的 unicode 吗?
需要你的帮助...
谢谢大家的回复。
现在我已经更改了代码。
#define UNICODE
#ifdef UNICODE
#define _UNICODE
#else
#define _MBCS
#endif
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
int main()
{
wchar_t *filename=L"testunicode.txt";
FILE *infile;
infile=_wfopen(filename,L"r");
wchar_t b[2];
fread(b,2,2,infile);//Read a character from the file
wprintf(L"%d",b[1]);
return 0;
}
它打印正确的 UTF 16 代码。使用它的项目需要读取世界上不同语言的字符。那么UTF-16会后缀还是我们应该将存储文件的编码更改为UTF-32呢?另外,这里 wchar_t 是 2 个字节,对于 UTF-32,我们需要一些 4 个字节的数据类型。如何做到这一点?
再次感谢你的回复........