заголовок окна экрана UTF8

0

Я пытался установить заголовок окна экрана 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);

}
Теги:
utf-8
sdl
screen
caption

1 ответ

0

Ввод его, как это, не будет работать, если только некоторым расширением компилятора. Вы можете преобразовать его в кодовые единицы UTF-8 (например, здесь):

D8 AA D8 B3 D8 AA DB 8C

И затем поместите это в литерал символа с использованием шестнадцатеричных \xHH (\xHH где HH - шестнадцатеричное значение):

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

Это должно работать, если ваша система может отобразить это.

Очевидно, что это утомительно, если у вас много строк UTF-8, вы можете поместить их в кодированный файл UTF-8 и прочитать оттуда или посмотреть, поддерживает ли ваш компилятор литералы UTF-8 (они выглядят следующим образом: u8"تستی").

Ещё вопросы

Сообщество Overcoder
Наверх
Меню