1

OpenGL で UTF-8 文字列を表示できる Python モジュールはありますか?

pyFTGL を見つけましたが、次のコードを実行すると:

    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, [1, 1, 1, 1])
    font = FTGL.PolygonFont("NeoTechStd-Medium.ttf")
    font.FaceSize(8)
    font.line_height
    font.Render("Angle = ? \u03C4")

次のエラーが表示されます。

    font.Render(u"Weld Head Angle = ? \u03C4")
Boost.Python.ArgumentError: Python argument types in
    PolygonFont.Render(PolygonFont, unicode)
did not match C++ signature:
    Render(FontWrapper<FTPolygonFont> {lvalue}, char const*, double)
    Render(FontWrapper<FTPolygonFont> {lvalue}, char const*)
DEBUG:Helpers.opengl_pipe:Redrawing contents of GLArea.
4

1 に答える 1

2

Render メソッドに UTF-8 を渡していません。Unicode リテラルを渡しています。

UTF-8 にエンコードする必要があります。

font.Render("Angle = ? \u03C4".encode('utf8'))

違いを理解するために、Unicode とエンコーディングに関するこの記事を読むことを心からお勧めします。

于 2012-07-12T13:15:23.090 に答える