【问题标题】:Can't display 'ä' in GLFW window title无法在 GLFW 窗口标题中显示“ä”
【发布时间】:2019-11-11 12:16:17
【问题描述】:
glfwSetWindowTitle(win, "Nämen");

变成“N?men”,在哪里?是一个小小的黑色扭曲方块,表示该字符无法显示。

如何显示“ä”?

【问题讨论】:

    标签: c++ glfw


    【解决方案1】:

    如果要在窗口标题中使用非 ASCII 字母,则字符串必须是 utf-8 编码。

    GLFW: Window title:

    窗口标题是使用 UTF-8 编码的常规 C 字符串。这意味着,例如,只要您的源文件编码为 UTF-8,您就可以使用任何 Unicode 字符。

    如果您看到有点黑色的扭曲方块,则这表明ä 是使用某种非 UTF-8 的 iso 编码进行编码的,可能类似于 latin1。要解决此问题,您需要在编辑器中打开它,您可以在其中更改文件的编码,将其更改为 uft-8(无 BOM)并修复标题中的 ä

    【讨论】:

    • main.cpp(在这种情况下)的编码更改为utf-8(无bom)不起作用。仍然存在相同的问号。
    【解决方案2】:

    在这种情况下,根据规范,GLFW 实现似乎不起作用。可能该函数仍然使用 Latin-1 而不是 UTF-8。

    我在 GLFW 3.3 Windows 64 位预编译二进制文件上遇到了同样的问题,并像这样修复它:

    SetWindowTextA(glfwGetWin32Window(win),"Nämen")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      相关资源
      最近更新 更多