LINUX.ORG.RU

newsbeuter, русские буквы, длина строки


0

0

В тексте новостей (в списке с заголовками все в порядке) в newsbeuter русские буквы почему-то по длине "считаются" за две http://s55.radikal.ru/i148/0909/c8/2c73cb12a88b.png), при этом английские "считаются" нормально, поэтому строчки только с латиницей занимают всю ширину, строчки со смешанными символами между половиной и всей шириной, а полностью русские строчки - половину реальной ширины окна. С остальными программами такого бага не замечено.
Версия newsbeuter 2.0 из репозитариев дебиана, собранная последняя с офф. сайта - тоже самое.
Есть предположения в чем ошибка и как его устранить?


Осмелюсь предположить - потому, что utf-8 и strlen(), который считает байты (исключая \0), а не символы. Если память не изменяет, в utf-8 русский символ занимает два байта.

andreyu ★★★★★
()
Ответ на: комментарий от ZloySergant

Да, системная локаль ru_RU.UTF-8. Естественно, менять ее на всякие кои8 не собираюсь, ведь в других приложениями (в т.ч. терминальных) все работает.
>Осмелюсь предположить - потому, что utf-8 и strlen(), который считает байты (исключая \0), а не символы. Если память не изменяет, в utf-8 русский символ занимает два байта.

Как я понимаю, это особенность программы и исправить это можно только вместе с сорцами newsbeuter'а, заменив механизм подсчета?

Smeea
() автор топика
Ответ на: комментарий от Smeea

> Как я понимаю, это особенность программы и исправить это можно только вместе с сорцами newsbeuter'а, заменив механизм подсчета?

Скорее всего так, я не смотрел сорцы.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.