给你个思路,首先做字符串分拆,以 \u 为分隔符得到每一个编码的值,如上面的 56de 这些子串.
然后参考:
Unicode 的 C 语言支持
在正式情况下,从 GNU glibc 2.2 开始,wchar_t 类型只为 32 位的 ISO 10646 格式数值所特定使用,与当前使用的语言环境无关。通过 ISO C99 所要求的 __STDC_ISO_10646__ 宏的定义作为信号通知应用程序。 __STDC_ISO_10646__ 的定义用来指出 wchar_t 是 Unicode。精确的值是一个十进制的 yyyymmL 格式的常数。例如,使用:
清单 4. 指出 wchar_t 是 Unicode
#define __STDC_ISO_10646__ 200104L
是为指出 wchar_t 类型的值是由 ISO/IEC 10646 和到指定的年月为止的所有修正与技术勘误定义的字符编码表示。
对 wchar_t 的利用如这个示例所示,使用宏确定在 ISO C99 可移植代码中写双引号的方法。
清单 5. 确定写双引号的方法
#if __STDC_ISO_10646__
printf("%lc", 0x201c);
#else
putchar('"');
#fi
自己试试吧...
如果你的input不是"\u56de"而是"0x56de"的话
可以使用
TCHAR ch = strtol("0x56de", NULL, 16);
然后
cout<
linux下,试试把TCHAR换成wchar_t
你直接这么做呢(C语言的)
char c='回';
printf("%c",c);
Unicode 的 C 语言支持
在正式情况下,从 GNU glibc 2.2 开始,wchar_t 类型只为 32 位的 ISO 10646 格式数值所特定使用,与当前使用的语言环境无关。通过 ISO C99 所要求的 __STDC_ISO_10646__ 宏的定义作为信号通知应用程序。 __STDC_ISO_10646__ 的定义用来指出 wchar_t 是 Unicode。精确的值是一个十进制的 yyyymmL 格式的常数。例如,使用:
清单 4. 指出 wchar_t 是 Unicode
#define __STDC_ISO_10646__ 200104L
是为指出 wchar_t 类型的值是由 ISO/IEC 10646 和到指定的年月为止的所有修正与技术勘误定义的字符编码表示。
对 wchar_t 的利用如这个示例所示,使用宏确定在 ISO C99 可移植代码中写双引号的方法。
清单 5. 确定写双引号的方法
#if __STDC_ISO_10646__
printf("%lc", 0x201c);
#else
putchar('"');
#fi
自己试试吧...
你直接这么做呢(C语言的)
char c='回';
printf("%c",c);
如果你的input不是"\u56de"而是"0x56de"的话
可以使用
TCHAR ch = strtol("0x56de", NULL, 16);
然后
cout<
linux下,试试把TCHAR换成wchar_t