2014-03-18 167 views
0

我试图在我的sdl项目中设置UTF8屏幕窗口标题的所有我看到的是????,我不知道如何处理它。这里是我的示例代码: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); 

} 

回答

0

像这样的输入将无法正常工作,除非通过一些编译器扩展。你可以将其转换为UTF-8编码单元(例如here):

D8 AA D8 B3 D8 AA DB 8C

然后将它放入用十六进制转义字面一个char(\xHH哪里HH是十六进制值):

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

这应该工作提供了您的系统可以显示。如果你有很多UTF-8字符串,你可以把它们放到一个UTF-8编码文件中并从那里读取,或者看看你的编译器是否支持UTF-8文字(它们是这样的看起来像这样:u8"تستی")。