int main()
{
char c = 0x41;
printf("char is : %c\n",c);
c = 0xe9;
printf("char is : %c\n",c);
unsigned int d = 0x164e;
printf("char is : %c\n",d);
return 0;
}
我要打印的内容是:
我在 Windows 上使用 Ubuntu 64 位 VMware Workstation 并使用八进制转储:
utf-16 LE txt 文件中三个字符的十六进制值。
输出:
如何正确打印出utf-16字符?
使用宽字符 (
wchar_t
) 和 wprintf
以 %lc
格式打印宽字符。
此外,设置区域设置以支持 Unicode:
setlocale(LC_ALL, "en_US.UTF-8")
.
还包括必要的标题:
#include <wchar.h>
#include <locale.h>
这是一个代码示例:
#include <wchar.h>
#include <locale.h>
int main() {
// Set the locale to support wide characters
setlocale(LC_ALL, "en_US.UTF-8");
// Print a UTF-16 character (wide character)
wchar_t utf16_char = L'😊'; // Smiley face emoji
wprintf(L"UTF-16 character: %lc\n", utf16_char);
// Print a UTF-16 string (wide string)
wchar_t utf16_string[] = L"Hello, 世界! 😊";
wprintf(L"UTF-16 string: %ls\n", utf16_string);
return 0;
}