GNU sed (per Windows) può gestire Unicode? In tal caso, si tratta di un problema di codepage / locale o di un interruttore?


10

Uso GNU SED da un paio d'anni a questa parte. A volte mi fa girare un po ', ma fa un buon lavoro ... per i set di caratteri a byte singolo!
Di tanto in tanto noto riferimenti a GNU SED che sono compatibili con Unicode, ma il più vicino che ho visto è la sua modalità "binaria" .. e binario non è Unicode.
GSED può elaborare un file di testo Unicode alla risoluzione di CodePoint, incluso e specialmente \ r \ n (Windows) ... e se è possibile, si aspetta UTF-8, UTF-16 o cosa? e in che modo SED rileva la codifica?


1
Di solito unicode è specificato con l'opzione \ uXXXX. Prova la compilation di questo japanease guy sky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

Risposte:


1

Non ne so molto di sed, ma dopo alcuni difficili googling sembra avere il supporto per una varietà di pagine di codice attraverso la variabile d'ambiente LANG. Credo che UTF-8 sia in effetti il ​​default in assenza di LANG. Non so come sia impostata la porta di Windows. Ho il forte sospetto che sed non esegua alcuna elaborazione di rilevamento sul flusso di input.

Fonti: /programming/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

Puoi anche provare a sfuggire ai personaggi come menzionato qui: http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html Sembra molto ingombrante.


@Mathew: Grazie. Sta iniziando a sembrare che il problema non risieda nello stesso SED.exe, ma nel modo in cui Windows non gestisce molto bene le code page nella sua console cmd.exe. Forse funziona con PowerShell, ma se devo andare lì, preferirei concentrarmi su Python. Per quanto posso vedere, orgoglio e gioia di Windows, UTF-16 (code-page 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx ) è disponibile solo per le applicazioni gestite , qualunque cosa significhi, ma sicuramente non funziona nella console. Converti in UTF-8 e viceversa? Non c'è modo! Python eccomi qui. (o 'Nix and Bash)
Peter

Per me va bene. Sono un po 'confuso su come cmd.exe stia causando il problema e come Python lo risolva (oltre ai noti poteri magici di Python ( xkcd.com/353 )), ma non pretendo di capire i capricci di cmd.exe. Buona fortuna a te!
Vanessa Phipps,

@fred: Leggi: .NET.
Ciao71,

2
Ho risolto il problema ... Ho lasciato perdere completamente MS circa 6 mesi fa e ora uso Ubuntu .. È liscio come la seta ... (e non sto guardando indietro ...
Peter.O
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.