sdl屏幕UTF8屏幕窗口标题

sdl screen UTF8 screen window caption

本文关键字:屏幕 窗口标题 UTF8 sdl      更新时间:2023-10-16

我试图在我的sdl项目中设置UTF8屏幕窗口标题,我所看到的是????,我不知道如何处理它。下面是我的示例代码:

#include "SDL/SDL.h"
int main( int argc, char* args[] )
{
    int screen_width = 800;
    int screen_hight = 600;
    int screen_bpp = 32;
    SDL_Surface *screen = NULL;
        SDL_Init( SDL_INIT_EVERYTHING );
    screen = SDL_SetVideoMode( screen_width, screen_hight, screen_bpp, SDL_SWSURFACE  );
        // Set the window caption
        SDL_WM_SetCaption( "تستی", NULL ); //utf8 not working
        SDL_Delay(5000);
        SDL_Flip(screen);
}

像这样输入它将不起作用,除非通过某些编译器扩展。您可以将其转换为UTF-8代码单元(例如这里):

D8 AA D8 B3 D8 AA DB 8C

然后使用十六进制转义将其放入字符文字(xHH其中HH是十六进制值):

SDL_WM_SetCaption( "xD8xAAxD8xB3xD8xAAxDBx8C", NULL );

如果你的系统可以显示,这个应该可以工作。

显然,如果您有很多UTF-8字符串,那么这样做是乏味的,您可以将它们放入UTF-8编码的文件中并从中读取,或者查看编译器是否支持UTF-8文字(它们看起来像这样:u8"تستی")。