← All posts tagged utf-8

Strephil

grep -w no longer mishandles a potential match adjacent to a letter that
takes up two or more bytes in a multibyte encoding.
Similarly, the patterns '\<', '\>', '\b', and '\B' no longer
mishandle word-boundary matches in multibyte locales.
[bug present since "the beginning"]

Неужели это починили, то что мне нужно, и теперь это будет работать с русскими словами???

Strephil

Вот тут видно на скриншоте, что происходит в Слаке, есть запустить файловый менеджер с юникодной локалью. Все надписи становятся русскими, НО ИМЕНА ФАЙЛОВ ТОЛЬКО КРАКОЗЯБРАМИ ПО ДРУГОМУ СУКА НЕЛЬЗЯ

Strephil

Каждый символ Юникода можно представить в UTF-8 с помощью четырех байтов. Почему же этим никто не пользуется? Это было бы очень удобно: все символы одинаковой длины.
Если ужь выбросить UTF-8 на помойку прямо сейчас нельзя, так можно хотя бы кодировать так, чтобы все все символы были одинаковой длины — по четыре байта???

Strephil

оказывается, Notepad из Windows XP умеет открывать файле в кодировке utf-8. Сохранять, правда, не умеет. Сохраняет в какой-то смешанной кодировке, там что всё ОК.
Но меня это привело в заблуждение. Я-то думал, что если в Notepad отображается нормально, то значит, это точно убогая восьмибитная кодировка… Оказалось нет.

Strephil

*regex
Не знаю ужь, или это utf-8 не удачная задумка или реализация в GNU не очень-то, только все вместе это работает…
Вот например:
$ echo хуй |grep '^[[:graph:]]*$'
хуй
$ echo хуй |grep '^[[:alnum:]]*$'
$ echo хуй |grep '^[[:alpha:]]*$'
$ echo привет |grep '^[[:alpha:]]*$'
привет
$ echo хуй |grep '^.{2}$'
$ echo хуй |grep '^.{3}$'
$ echo хуй |grep '^.{4}$'
$ echo хуй |grep '^.{5}$'
$ echo хуй |grep '^.\+$'
хуй
$ echo хуй |grep '^[[:print:]]*$'
хуй
Больше всего меня удивило последнее, слово-то непечатное.