Может ли GNU sed (для Windows) обрабатывать Unicode? Если это так, это проблема с кодовой страницей / языком или переключателем?


10

Я использую GNU SED и выключаю уже пару лет. Иногда это немного раскручивает меня, но делает хорошую работу ... для однобайтовых наборов символов!
Время от времени я замечаю ссылки на то, что GNU SED поддерживает Unicode, но ближе всего я видел его «двоичный» режим… и двоичный не Unicode.
Может ли GSED обрабатывать текстовый файл Unicode с разрешением CodePoint, включая, в частности, \ r \ n (Windows) ... и, если это возможно, ожидает UTF-8, UTF-16 или что? и как SED обнаруживает кодировку?


1
Обычно Юникод указывается с параметром \ uXXXX. Попробуйте компиляцию этого парня из Японии sky.geocities.jp/hp_gabo200x/room_tool.html
Михаил

Ответы:


1

Я не знаю много о sed, но после некоторого жесткого поиска в Google, кажется, есть поддержка различных кодовых страниц через переменную окружения LANG. Я считаю, что UTF-8 на самом деле является дефолтом при отсутствии LANG. Я не знаю, как настроить порт Windows, хотя. У меня есть сильное подозрение, что sed вообще не выполняет обработку обнаружения входного потока.

Источники: /programming/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

Вы также можете попробовать экранировать символы, как указано здесь: http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html Хотя это кажется очень громоздким.


@ Мэтью: Спасибо. Кажется, что проблема заключается не в самом SED.exe, а в том, что Windows не очень хорошо обрабатывает кодовые страницы в консоли cmd.exe. Возможно, он работает в PowerShell, но если мне нужно туда, я бы вместо этого сосредоточился на Python. Насколько я вижу, Windows гордится и радует, UTF-16 (кодовая страница 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx ) доступна только для управляемых приложений , что бы это ни значило, но это точно не работает в консоли .. Конвертировать в UTF-8 и обратно? Ни за что! Питон, вот и я. (или 'Никс и Баш)
Питер.

Звучит неплохо. Я немного сбит с толку, как cmd.exe вызывает проблему и как Python решает ее (помимо хорошо известных магических способностей Python ( xkcd.com/353 )), но я не собираюсь притворяться, что понимаю причуды cmd.exe. Удачи тебе!
Ванесса Фиппс

@fred: Читать: .NET.
Hello71

2
Я решил проблему ... Я полностью уронил MS около 6 месяцев назад, и теперь использую Ubuntu ... Он такой же гладкий, как шелк ... (и я не оглядываюсь назад ...
Peter.O
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.