如何从 SDL_TEXTINPUT 获取 utf-8 输入?

How to get utf-8 input from SDL_TEXTINPUT?

这是一个小代码,当我们在法语键盘上按“é”键或特殊字符时,我们会在控制台中得到奇怪的字符,例如“├®”。

#include <iostream>
#include "SDL.h"
using namespace std;

int main(int argc, char** argv)
{
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_CreateWindow("test", 100, 100, 1920, 1080, SDL_WINDOW_RESIZABLE);
    bool opened = true;
    SDL_Event event;
    while(opened)
    {
        SDL_StartTextInput();
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                {
                    opened = 0;
                    break;
                }
            case SDL_TEXTINPUT:
                {
                    cout << event.text.text << endl;
                    break;
                }
        }
    }
    return EXIT_SUCCESS;
}

PS: 我正在使用 SDL 2

只需要使用 TTF_RenderUTF8_Blended 进行渲染(文件中的输出很好)