coreutils, которые являются utf знающий?

С самого начала:

  • Xorg, XFree86 и X11 являются серверами дисплея. Это создает графическую среду.
  • [gkx] dm (и другие) являются менеджерами по оформлению. Менеджер по входу в систему является синонимом. Это является первым X прогонов программы системой, если система (не пользователь) запускает X и позволяет Вам входить в локальную систему или сетевые системы.
  • Менеджер окон управляет размещением и художественным оформлением окон. Таким образом, граница окна и средства управления являются художественным оформлением. Некоторые из них являются одинокими (WindowMaker, пила-рыба, fvwm, и т.д.). Некоторые зависят от сопроводительной настольной среды.
  • Настольная среда, такая как XFCE, KDE, GNOME, и т.д. является комплектами приложений, разработанных для интеграции хорошо друг с другом для обеспечения последовательного опыта.

В теории (и главным образом так на практике) любой из тех компонентов является взаимозаменяемым. Можно выполнить kmail использование GNOME с WindowMaker на Xorg.

16
11.11.2015, 19:39
2 ответа

GNU coreutils действительно понимает UTF-8 в целом. Например, echo 哈哈 | wc -m правильно выводы 3 в локали UTF-8 (отмечают, что опция -m, нет -c который по историческим причинам означает байты).

Это - ошибка в cut. Рассмотрение источника cut, cut на символах просто не реализован: -c опцию рассматривают как синоним -b.

Обходное решение должно использовать awk. GNU awk справляется с UTF-8 очень хорошо.

awk '{print substr($0,2,length)}'
13
27.01.2020, 19:48
  • 1
    Стоило бы зарегистрировать bugreport (даже если это заканчивает тем, что было дубликатом) чтобы раздражать coreutils специалистов по обслуживанию в фактическое исправление ошибок как это, вместо того, чтобы просто добавить глупые взломы и игрушечные утилиты, что никому не нужен... –  R.. GitHub STOP HELPING ICE 03.07.2011, 19:27

Это похоже на ошибку в Вашей сборке/версии coreutils. Я могу воспроизвести это на Сурикате Индивидуалиста Ubuntu 10.10, но не на Fedora 15.

[patches@holocene ~]$ cat /etc/fedora-release 
Fedora release 15 (Lovelock)
[patches@holocene ~]$ rpm -q coreutils
coreutils-8.10-2.fc15.x86_64
[patches@holocene ~]$ echo 哈哈 | cut -c 2-
哈
[patches@holocene ~]$ sudo chroot /mnt/maverick
root@holocene:/# grep DISTRIB_DESC /etc/lsb-release
DISTRIB_DESCRIPTION="Ubuntu 10.10"
root@holocene:/# dpkg-query -s coreutils | grep Version
Version: 8.5-1ubuntu3
root@holocene:/# echo 哈哈 | cut -c 2-
��哈

Если Вы также используете Ubuntu, можно сообщить об ошибке к Ubuntu coreutils поставщики программного блока путем выполнения следующей команды:

apport-bug coreutils

Обновление: Gilles указывает в комментариях, что это - ошибка в восходящей версии coreutils тот Fedora исправил. Можно найти их патч здесь, если требуется попытаться исправить его сами для получения его работа.

3
27.01.2020, 19:48
  • 1
    я просто посмотрел на источник, и это - восходящая ошибка, которую, по-видимому, исправил Fedora. Восходящий источник просто делает -c псевдоним -b. –  Gilles 'SO- stop being evil' 02.07.2011, 13:44
  • 2
    @Gilles: Интересный. Я связался с патчем Fedora в своем ответе в случае, если кто-то хочет попытаться зафиксировать его для себя. –  Patches 02.07.2011, 14:00
  • 3
    Связь разорвана. –  corvus_192 07.01.2017, 21:24

Теги

Похожие вопросы