The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Отображение заголовков (titles) на русском языке в оконных менеджерах (charset x xfree86 8-bit locale rus window font fvwm wm )


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: charset, x, xfree86, 8-bit, locale, rus, window, font, fvwm, wm,  (найти похожие документы)
From: Ivan Pascal <pascal@tsu.ru> Newsgroups: fido7.ru.unix Subject: Отображение заголовков (titles) на русском языке в оконных менеджерах > Однако, желание покопать, что это было, у меня не пропало. А вот идей > конструктивных нет. =(( Ну, я могу рассказать, тем более, что сам к этому руку приложил. Но это все достаточно сложно и не очень интересно. Заголовки передаются из прикладной программы в прогамму - window manager. С заголовками в ascii особых проблем нет, они просто передаются как обычная строка (массив байтиков), а заголовки в национальных кодировках надо передавать в каком-нибудь формате, который явно подскажет WM - в какой кодировке эта строка (и каким фонтом ее рисовать). В иксах до недавнего времени было три таких формата - STRING, просто строчка байтиков без указания кодировки. По иксовым же стандартам, в таком формате можно передавать только ascii и latin1 - "европейские латинские" буквы. - COMPOUND TEXT (или CTEXT) - сложный формат, в котором специальными esc-последовательностями обозначаются места перехода от одной кодировки к другой - еще один формат, где название кодировки передается в дополнительной строчке. Но этот практически не используется, так как он не лучше CTEXT, а для его использования все приложения должны знать как можно больше названий национальных кодировок. Не так давно добавился еще юникодный формат UTF-8. До недавнего времени (да и до сих пор еще) многие программы, в том числе и многие WM, или вообще писались без учета существования многочисленных национальных кодировок, или имели их поддержку как "опциональную", то есть ее надо выбирать явно при сборке. То, что в этих приложениях русский показывался правильно, обеспечивалось целым рядом "хаков", которые заставляли приложения принимать koi8-r за latin1 и не пытаться для него использовать навороченные форматы. В данном случае это означало, что русские заголовки предавались в простейшем формате STRING. Постепенно, от версии к версии, в xfree это дело "причесывается". По мере отлаживания механизма поддержки национальных кодировок, старые "хаки" вычищаются. Поэтому и обнаруживается, что некоторые программы (по крайней мере в default'ной сборке) даже не пытаются использовать те механизмы, что есть в иксах, и тупо считают все, что предаётся от приложения к приложению, кодированым в ascii или latin1. То, что вы наблюдали означает, что ... - приложение, увидев, что заголовок в koi8-r, закодировало его в CTEXT (в предыдущей версии, оно просто обманывалось "хаком" и считало, что передает голимую латиницу). - а вот fvwm2 даже не пытался проверить формат сообщения, считая, что кроме STRING ничего другого быть не может. И не пытаясь "расшифровать" заголовок, тупо выводил его. Вот ошметки esc-sequences вы и наблюдали. Переособрав fvwm, вы сделали его достаточно умным, чтобы распознавать навороченные форматы и извлекать из них реальный текст в нужной кодировке. Потому мусор и исчез.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, Yura, 16:03, 14/07/2004 [ответить] [смотреть все]
  • +/
      Переособрав fvwm, вы сделали его достаточно умным, чтобы
    распознавать навороченные форматы и извлекать из них реальный текст
    в нужной кодировке. Потому мусор и исчез.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor