编程语言:C++
,渲染器:GLStudio
。
我想呈现 Unicode 字符 'GREEK CAPITAL LETTER DELTA' (U+0394)
,如:ΔP
代码是:
sprintf(somebuffer,"%cP",'\u0394');
然而结果是白色垂直矩形' (U+25AF) 如下:
▯P
这是我使用的引用:http://www.fileformat.info/info/unicode/char/25af/index.htm
显然在渲染器上存在 unicode 映射问题,但我无法准确指出它,所以想在尝试绘制实际的 opengl 三角形之前尝试我在 SO 中的机会作为解决方法。非常感谢任何帮助或建议!
最佳答案
这完全取决于渲染器所期望的编码。它很有可能期望或支持 UTF-8:
sprintf(somebuffer, u8"\u0394P");
这形成了字符串 <capital delta><P>
以 UTF-8 编码并将其写入缓冲区(不检查大小或使用更合适的 C 函数,如 strncpy
)。然后由渲染器获取这些字节并按您期望的方式渲染它们。
当前发生的事情很可能会通过 int
参数代替 %c
需要 char
的占位符.我想虽然未定义行为,但它采用第一个字节并将其视为 char
.
关于c++ - Unicode 字符 "GREEK CAPITAL LETTER DELTA"在 C++ 和 GLStudio 中呈现为 "White vertical rectangle",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42538578/