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

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

1 ответ

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

Источники: https://stackoverflow.com/questions/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 Хотя это кажется очень громоздким.

Другие вопросы по тегам