Я пытался установить заголовок окна экрана 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 (например, здесь):
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"تستی"
).