X11 XM_NAME имеет тип "UTF-8", а не STRING_UTF8
Я смотрю на некоторый код X11, который использует XmbTextListToTextProperty
установить WM_NAME
свойство, со стилем кодирования XTextStyle
,
http://tronche.com/gui/x/xlib/ICC/client-to-window-manager/XmbTextListToTextProperty.html предлагает XTextStyle
означает, что тип / кодировка свойства будет зависеть от текущей локали.
Я не уверен, как интерпретировать http://tronche.com/gui/x/icccm/sec-4.html, кажется, это позволяет тип WM_NAME
быть зависимым от текущей локали.
Моя текущая локаль - en_US.UTF-8. Все, что я видел до сих пор, говорит о том, что тип WM_NAME
должен быть типа STRING
, COMPOUND_STRING
или же UTF8_STRING
,
Тем не мение, xprop
отчеты UTF-8
, а также xwininfo
сообщает имя в неподдерживаемой кодировке UTF-8. Проверка кода, действительно, он имеет поддержку UTF8_STRING
но нет UTF-8
,
Я в растерянности относительно того, где это UTF-8
происходит от. Есть идеи?
1 ответ
Похоже, кроме стандартных типов STRING
, COMPOUND_STRING
а также UTF8_STRING
(последнее является расширением XFree86), также допустимо иметь любое многобайтовое кодирование.
При прохождении XTextStyle
в XmbTextListToTextProperty
просто возьмет текущую кодировку из текущей локали. в en_US.UTF-8
локаль, это было бы UTF-8
, Чтобы получить стандартизированный (по XFree86) UTF8_STRING
введите для свойства, нам нужно передать XUTF8StringStyle
в XmbTextListToTextProperty
вместо XTextStyle