【发布时间】:2019-11-11 12:16:17
【问题描述】:
glfwSetWindowTitle(win, "Nämen");
变成“N?men”,在哪里?是一个小小的黑色扭曲方块,表示该字符无法显示。
如何显示“ä”?
【问题讨论】:
glfwSetWindowTitle(win, "Nämen");
变成“N?men”,在哪里?是一个小小的黑色扭曲方块,表示该字符无法显示。
如何显示“ä”?
【问题讨论】:
如果要在窗口标题中使用非 ASCII 字母,则字符串必须是 utf-8 编码。
窗口标题是使用 UTF-8 编码的常规 C 字符串。这意味着,例如,只要您的源文件编码为 UTF-8,您就可以使用任何 Unicode 字符。
如果您看到有点黑色的扭曲方块,则这表明ä 是使用某种非 UTF-8 的 iso 编码进行编码的,可能类似于 latin1。要解决此问题,您需要在编辑器中打开它,您可以在其中更改文件的编码,将其更改为 uft-8(无 BOM)并修复标题中的 ä。
【讨论】:
main.cpp(在这种情况下)的编码更改为utf-8(无bom)不起作用。仍然存在相同的问号。
在这种情况下,根据规范,GLFW 实现似乎不起作用。可能该函数仍然使用 Latin-1 而不是 UTF-8。
我在 GLFW 3.3 Windows 64 位预编译二进制文件上遇到了同样的问题,并像这样修复它:
SetWindowTextA(glfwGetWin32Window(win),"Nämen")
【讨论】: