无论其编码如何(UTF-8、16、32),我都想在屏幕上打印一个字符串。该字符串以 char 数组表示,因此我需要忽略空字节并继续打印到标准输出;这让 printf 的家人和朋友无从谈起。
char text[] = { 0x00, 0x55, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65 };
fwrite( text, sizeof(char), sizeof(text), stdout );
为此,我选择了上述解决方案,以使我能够打印所有 UTF 编码格式。我了解某些终端无法正确显示字符,但这不是我关心的问题,因为它是应用程序之外的可配置选项。
我的应用程序设置了要加载的消息目录(en_EN.UTF-8 等),但是我想避免必须根据当前选择的语言环境在代码中进行字符串转换。
在我让它上线之前,我可以对这种方法进行审查吗?