Заголовок окна экрана UTF8
Я пытался установить заголовок окна UTF8 в моем проекте SDL все, что я вижу, это ????
и я понятия не имею, как с этим бороться. Вот мой пример кода:
#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);
}
1 ответ
Ввод его таким образом не будет работать, если только с помощью какого-либо расширения компилятора. Вы можете преобразовать его в кодовые единицы UTF-8 (например, здесь):
D8 AA D8 B3 D8 AA DB 8C
И затем поместите это в символьный литерал, используя шестнадцатеричные escape-символы\xHH
где HH
это шестнадцатеричное значение):
SDL_WM_SetCaption( "\xD8\xAA\xD8\xB3\xD8\xAA\xDB\x8C", NULL );
Это должно работать, если ваша система может отображать это.
Очевидно, что это утомительно, если у вас много строк UTF-8, вы можете поместить их в файл в кодировке UTF-8 и прочитать оттуда, или посмотреть, поддерживает ли ваш компилятор литералы UTF-8 (они выглядят так: u8"تستی"
).