/* ANSI-UTF-8转换程序
created by Initial-T 2021-1-26*/
#include <stdio.h>
#include <windows.h>
#include <wchar.h>
//定义输入长度,宽字符长度,utf-8长度
int in_size,wide_size,utf8_size;
//定义宽字符串与utf-8字符串
wchar_t * wide_string;
char * utf8_string;
main() {
//定义输入值并获取其长度
char input_string[25]={0};
strcpy(input_string, "规格严格,功夫到家");
in_size= strlen(input_string);
/*映射一个字符串到一个宽字符(unicode)的字符串。由该函数映射的字符串没必要是多字节字符组。
CP_ACP:ANSI代码页(简体中文Windows操作系统中,ANSI 编码代表 GBK 编码)*/
//先获取宽字符串长度并创建,再以实际值执行函数
wide_size=MultiByteToWideChar(CP_ACP, 0, input_string, in_size, NULL, 0);
wide_string = (wchar_t * ) malloc(wide_size*sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, 0, input_string, in_size, wide_string, wide_size);
/*把宽字符串转换成指定的新的字符串,如ANSI,UTF8等,新字符串不必是多字节字符集。
CP_UTF8:使用UTF-8转换*/
utf8_size = WideCharToMultiByte(CP_UTF8, 0, wide_string, wide_size, NULL, 0, NULL, NULL);
utf8_string = (char * ) malloc(utf8_size);
WideCharToMultiByte(CP_U