Ошибки cut -c для русских символов

При чём тут локаль вообще? Если я правильно понял, cut тупо не знает, что символ может кодироваться не восемью байтами.
lampslave
При чём тут локаль вообще? Если я правильно понял, cut тупо не знает, что символ может кодироваться не восемью байтами.
При том, что cut выводит то, что его просят. Просят символ 10 в кодировке UTF-8 - значит вывести сивол 10, кодированный 8 битами. И это верно.
А то, что кирилица кодируется 16 битами в кодировке UTF-8 - это не его проблемы... Зато в результате - вывод получается не тот, что ожидается... И это, на мой взгляд, проблема не пользователя... По-моему, если кодировка использует 8 бит, она должна использовать 8 бит для всех символов, какие бы они не были. Да, пусть их будет всего 256, но: хотите больше - используйте другую кодировку...
cut все выводит верно. Вот Вам для раздумья - полный вывод "test " (с пробелом и переводом строки) -
$ cat -A test
M-PM-"M-PM-5M-QM-^AM-QM-^B $
1....2. ...3. ...4... .5. ...6.. ..7.. ..8.. ..9 (пробел)
Ошибки не исчезают с опытом - они просто умнеют
Anton8830, тебе ж написали, это баг cut, который не исправляют очень долго!
cut должен с ключем -с работать правильно не зависимо от кодировки и ее спецификации, а он работает не правильно, так как бы работал с ключем -b.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
echo 'Привет' | iconv -f UTF-8 -t cp1251 | cut -c 3 | iconv -f cp1251 -t UTF-8
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Anton8830, тебе ж написали, это баг cut, который не исправляют очень долго!
cut должен с ключем -с работать правильно не зависимо от кодировки и ее спецификации, а он работает не правильно, так как бы работал с ключем -b.
Тогда и баг wc? Он ведь тоже сообщает, что в строке не 17 символов???
lampslave
Ну перекодируйте всё в utf-16
Сам файл? А как?
GitHub, ArchWiki, AUR
Kycok
lampslave
Ну перекодируйте всё в utf-16
Сам файл? А как?
Саму систему вместе с файлами... Всю, со всеми...
Anton8830
Тогда и баг wc?
да и его баг, так как они используют одну библиотеку для работы с символами!
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Anton8830
Тогда и баг wc?
да и его баг, так как они используют одну библиотеку для работы с символами!
Возможно, я неправ и это баг cut, wc, length и прочего, но я не понимаю такой логики... Для меня это - повод отказаться от UTF-8...
 
Зарегистрироваться или войдите чтобы оставить сообщение.