Bisakah GNU sed (untuk Windows) menangani Unicode? Jika demikian, apakah ini masalah kode-halaman / lokal, atau perubahan?

10

Saya telah menggunakan dan mematikan GNU SED selama beberapa tahun sekarang. Kadang-kadang saya sedikit pusing, tetapi bekerja dengan baik ... untuk set char byte tunggal!
Saya sekarang dan kemudian melihat referensi ke GNU SED sebagai Unicode-aware, tetapi yang paling dekat yang saya lihat dari ini adalah mode "binary" nya .. dan binary bukan Unicode.
Bisakah GSED memproses file teks Unicode pada resolusi CodePoint, termasuk dan terutama \ r \ n (Windows) ... dan jika bisa, apakah ia mengharapkan UTF-8, UTF-16, atau apa? dan bagaimana SED mendeteksi pengkodean?

Peter.O
sumber
1
Biasanya unicode ditentukan dengan opsi \ uXXXX. Coba ini kompilasi sky.geocities.jp/hp_gabo200x/room_tool.html orang Jepang ini
Mikhail

Jawaban:

1

Saya tidak tahu banyak tentang sed, tetapi setelah beberapa Googling sulit tampaknya memiliki dukungan untuk berbagai halaman kode melalui variabel lingkungan LANG. Saya percaya UTF-8 sebenarnya adalah default dengan tidak adanya LANG. Saya tidak tahu bagaimana mengatur port Windows. Saya memang memiliki kecurigaan kuat bahwa sed tidak melakukan pemrosesan deteksi sama sekali pada input stream.

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

Anda juga dapat mencoba karakter melarikan diri seperti yang disebutkan di sini: http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html Tampaknya itu sangat rumit.

Vanessa Phipps
sumber
@Mathew: Terima kasih. Tampaknya masalah ini mungkin bukan terletak pada SED.exe itu sendiri, tetapi karena Windows tidak menangani halaman kode dengan sangat baik di konsol cmd.exe-nya. Mungkin ini bekerja di PowerShell, tetapi jika saya harus pergi ke sana, saya lebih suka fokus pada Python. Sejauh yang saya bisa lihat, kebanggaan dan kegembiraan Windows sendiri, UTF-16 (kode-halaman 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx ) hanya tersedia untuk aplikasi yang dikelola , apa pun artinya itu, tetapi pasti tidak bekerja di konsol .. Konversi ke UTF-8 dan kembali? Tidak mungkin! Python, aku datang. (atau 'Nix dan Bash)
Peter.O
Terdengar bagus untukku. Saya agak bingung bagaimana cmd.exe menyebabkan masalah dan bagaimana Python memecahkannya (selain kekuatan sihir terkenal dari Python ( xkcd.com/353 )), tapi saya tidak akan berpura-pura memahami masalah-masalah aneh dari cmd.exe. Semoga beruntung untukmu!
Vanessa Phipps
@ Fred: Baca: .NET.
Hello71
2
Saya telah memecahkan masalah ... Saya telah menjatuhkan MS sepenuhnya sekitar 6 bulan yang lalu, dan sekarang menggunakan Ubuntu .. Ini sehalus sutra ... (dan saya tidak melihat ke belakang ...
Peter.O