无法在GLFW窗口标题中显示“ä”

时间:2019-11-11 12:16:17

标签: c++ glfw

glfwSetWindowTitle(win, "Nämen");

成为“ N?men”,其中“?”呈黑色略微扭曲的正方形,表示该字符无法显示。

如何显示“ä”?

2 个答案:

答案 0 :(得分:2)

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

GLFW: Window title

  

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

如果看到有点黑的扭曲正方形,则表明ä使用的编码不是UTF-8,而是类似latin1的iso编码。要解决此问题,您需要在编辑器中打开它,在其中可以更改文件的编码,将其更改为uft-8(不带BOM),并修复标题中的ä

答案 1 :(得分:1)

在这种情况下,GLFW实现似乎无法按照规范运行。该功能可能仍使用Latin-1而不是UTF-8。

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

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