C言語Unicode小記

912 ワード

#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <wchar.h>

const int SIZE = 100;

int main(void)
{
	wchar_t wstr[SIZE];
	//wchar_t wstr[] = {0x5b89, 0x5353, 0};

	/*   ,        */
	setlocale(LC_ALL, "Chinese-simplified"); // locale.h

    //wscanf(L"%s", wstr);
    //        Illegal byte sequence  ,
    //  CodeBlocks  IDE  
    //   Settings-Compiler-Global compiler settings-Compiler settings-Other options 
    //   -finput-charset=GBK      
	wcscpy(wstr, L"HELLO  hello"); // stdlib.h

	int i;
	for (i = 0; wstr[i]; ++i)
		printf("%#06X
", wstr[i]); wprintf(L"%ls
", wstr); //fputws(wstr, stdout); return 0; }

出力結果:
0 X 0048 0 X 0045 0 X 004 C 0 X 004 C 0 X 004 F 0 X 4 E 16 0 X 754 C 0 X 0068 0 X 0065 0 X 006 C 0 X 006 C 0 X 006 C 0 X 006 F HELLOワールドhello