无法在 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 渲染?