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

Posted

技术标签:

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

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

如何显示“ä”?

【问题讨论】:

【参考方案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")

【讨论】:

以上是关于无法在 GLFW 窗口标题中显示“ä”的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 glfw 窗口上没有使用 opengl 显示位图图像?在 C++ 中读取位图图像文件时出现问题

GLFW 窗口仅显示 Clear Color 而没有其他内容

如何在 imgui 窗口中使用 opengl glfw3 渲染?

OpenGL GLFW 窗口一打开就关闭

如何在 GLFW 窗口中限制我的每秒帧数? (使用亲爱的 ImGui)

在 Pyqt 窗口中使用 glfw 窗口