Unicode字符“GREEK CAPITAL LETTER DELTA”在c ++和GLStudio中呈现为“白色垂直矩形”

时间:2017-03-01 17:47:20

标签: python c++ opengl unicode

编程语言: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映射问题,但是我无法确切地指出它,所以想在SO中尝试我的机会,然后尝试绘制一个实际的opengl三角形作为解决方法。非常感谢任何帮助或建议!

1 个答案:

答案 0 :(得分:2)

这完全取决于渲染器所期望的编码。它预计或支持UTF-8的可能性很大:

sprintf(somebuffer, u8"\u0394P");

这将形成以UTF-8编码的字符串<capital delta><P>并将其写入缓冲区(不检查大小或使用更合适的C函数,如strncpy)。然后由渲染器决定是否采用这些字节并按照您的预期渲染它们。

目前发生的事情很可能是通过int参数代替期望%c的{​​{1}}占位符。我会想象,虽然未定义的行为,它取第一个字节并将其视为char