【问题标题】:sdl screen UTF8 screen window captionsdl screen UTF8 屏幕窗口标题
【发布时间】:2014-03-18 21:22:53
【问题描述】:

我试图在我的 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);

}

【问题讨论】:

    标签: c++ utf-8 screen sdl caption


    【解决方案1】:

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

    D8 AA D8 B3 D8 AA DB 8C

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

    SDL_WM_SetCaption( "\xD8\xAA\xD8\xB3\xD8\xAA\xDB\x8C", NULL );
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多