|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Vlasov 2:5020/400 10 Mar 2005 15:47:32 To : Sergey Mudry Subject : Re: А программирование под X тут обсуждают? (ion2) -------------------------------------------------------------------------------- On Wed, 9 Mar 2005 21:53:05 +0000 (UTC) Sergey Mudry wrote: > === Cut === > XTextProperty prop; > char **list=NULL; > int n=0; > Status st=0; > > st=XGetTextProperty(wglobal.dpy, win, &prop, a); > > if(nret) > *nret=(!st ? 0 : -1); > if(!st) > return NULL; > > if(!wglobal.use_mb){ > st=XTextPropertyToStringList(&prop, &list, &n); > }else{ > st=XmbTextPropertyToTextList(wglobal.dpy, &prop, &list, &n); > st=!st; > } > > XFree(prop.value); > === Cut === > > Выяснил, что обламывается функция XTextPropertyToStringList. > Если в заголовке только латинница, то XGetTextProperty возвращает prop > как положено, c prop.encoding==31 (XA_STRING) и prop.format==8, а в > prop.value лежит собственно текст. > А если есть кириллица, то получаем prop.encoding==277 (такого кода в > Xatom.h нет, что это?), функция XTextPropertyToStringList такое не > переваривает. prop.value при этом тоже содержит текст, но обрамлённый > непечатными символами и текстом 'koi8-r'. COMPOUND_TEXT это. > Вопрос: можно сие пофиксить? Чтобы русская надпись всё же появилась в > заголовке окна. В man XTextPropertyToStringList написано: The data in text_prop must be of type STRING and format 8. А STRING - это по определению ISO-8859-1, где никаких русских букв быть не может. Т.е., функция XTextPropertyToStringList для данных целей непригодна. Для работы с другими кодировками нужно использовать XmbTextPropertyToTextList, XwcTextPropertyToTextList, Xutf8TextPropertyToTextList. Поскольку в приведённом коде есть ветка, где используется XmbTextPropertyToTextList, нужно добиться, чтобы она использовалась - т.е., выставить флаг wglobal.use_mb. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3672777d76a9.html, оценка из 5, голосов 10
|