【问题标题】:Print UTF8 characets to windows console using a source file with a UTF8 encoding使用 UTF8 编码的源文件将 UTF 8 字符打印到 Windows 控制台
【发布时间】:2018-01-18 17:31:41
【问题描述】:

我正在尝试使用 c++ 控制台应用程序将ê 之类的 UTF8 字符打印到 Windows 控制台,我正在使用 SetConsoleOutputCP(CP_UTF8); 并且我得到了预期的结果,但是,我的源文件需要具有以下编码: 没有签名的 UTF8,是的,这是必要的,因为我正在获取字符串的 UTF8 十六进制值,所以我的问题是,如何使用这样的源文件将 ê 这样的字符打印到控制台而不是打印我得到的(ê)

【问题讨论】:

  • 告诉您的文本编辑器使用 BOM 保存以 utf8 编码的文件。 BOM 很重要,这就是编译器如何知道源文件包含 utf8 编码文本的方式。可能还有一个编译选项来告诉它。不告诉我们有关您使用的工具的任何信息,很难为您提供帮助。

标签: c++ encoding utf-8


【解决方案1】:

使用u8,您可以指定字符串始终编码为UTF8,而不管源文件的实际编码。

【讨论】:

  • 如何将 u8 与字符串变量一起使用?而不是字符串文字
  • 当你把utf8-content放到一个字符串中时,字符串中就会有utf8。 “使用字符串变量”是什么意思?
  • 如果我这样做,我还有一个问题,那就是:当我使用 ToHex("ê") 时的输出是 EA 而不是 C3 AA,就像我想要的那样你明白吗?因此,我需要将源文件设置为 utf8 编码
  • 可以,但是你还是要正确告诉编译器源编码是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 2012-07-29
  • 2018-12-29
  • 2022-01-01
相关资源
最近更新 更多