Czy GNU sed (dla Windows) może obsługiwać Unicode? Jeśli tak, to czy jest to problem ze stroną kodową / ustawieniami regionalnymi, czy zmiana?


10

Od kilku lat korzystam z GNU SED. Czasem mnie to trochę podkręca, ale robi dobrą robotę ... dla zestawów znaków jednobajtowych!
Od czasu do czasu zauważam, że odniesienia do GNU SED są świadome Unicode, ale najbliższe, jakie widziałem, to tryb „binarny”… a binarny to nie Unicode.
Czy GSED może przetwarzać plik tekstowy Unicode w rozdzielczości CodePoint, w tym zwłaszcza \ r \ n (Windows) ... a jeśli tak, czy oczekuje UTF-8, UTF-16, czy co? i jak SED wykrywa kodowanie?


1
Zwykle kod Unicode jest określany za pomocą opcji \ uXXXX. Wypróbuj kompilację tego faceta japanease sky.geocities.jp/hp_gabo200x/room_tool.html
Michaił

Odpowiedzi:


1

Nie znam tony o sed, ale po pewnym trudnym Googlingu wydaje się, że obsługuje różne strony kodowe poprzez zmienną środowiskową LANG. Uważam, że UTF-8 jest tak naprawdę domyślny w przypadku braku LANG. Nie wiem jednak, jak skonfigurować port Windows. Mam silne podejrzenie, że sed w ogóle nie wykonuje przetwarzania detekcji w strumieniu wejściowym.

Źródła: /programming/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

Możesz także wypróbować znaki specjalne, jak wspomniano tutaj: http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html Jednak to wydaje się bardzo kłopotliwe.


@Mathew: Dzięki. Zaczyna się wydawać, że problem może nie dotyczyć samego SED.exe, ale sposobu, w jaki system Windows nie radzi sobie dobrze ze stronami kodowymi w konsoli cmd.exe. Może działa w PowerShell, ale jeśli muszę tam iść, wolę skupić się na Pythonie. O ile widzę, własna duma i radość systemu Windows, UTF-16 (strona kodowa 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx ) jest dostępna tylko dla aplikacji zarządzanych , cokolwiek to znaczy, ale na pewno nie działa w konsoli .. Konwertujesz na UTF-8 iz powrotem? Nie ma mowy! Python, nadchodzę. (lub „Nix and Bash)
Peter.O

Brzmi dobrze jak dla mnie. Jestem trochę zdezorientowany, w jaki sposób cmd.exe powoduje problem i jak Python go rozwiązuje (oprócz znanych magicznych mocy Pythona ( xkcd.com/353 )), ale nie zamierzam udawać, że rozumiem kaprysy z cmd.exe. Powodzenia!
Vanessa Phipps

@fred: Przeczytaj: .NET.
Hello71

2
Rozwiązałem problem ... Całkowicie porzuciłem stwardnienie rozsiane około 6 miesięcy temu, a teraz używam Ubuntu .. Jest tak gładki jak jedwab ... (i nie patrzę wstecz ...
Peter.O
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.