Мне нужно прочитать символы Unicode из файла.Единственное, что мне нужно от них сделать, это извлечь их номер Unicode.Я работаю в Windows XP, используя CodeBlock Mingw.
Я делаю что-то вроде этого
#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 байтами.Как это сделать?
Еще раз спасибо за ваш ответ ........