GNU sed (cho Windows) có thể xử lý Unicode không? Nếu vậy, nó là một vấn đề trang mã / địa phương, hoặc một chuyển đổi?


10

Tôi đã sử dụng GNU SED trong vài năm nay rồi. Đôi khi nó làm tôi phát điên lên, nhưng nó làm rất tốt ... đối với các tập char đơn byte!
Bây giờ tôi nhận thấy các tham chiếu đến GNU SED là nhận thức về Unicode, nhưng gần nhất tôi thấy điều này là chế độ "nhị phân" của nó .. và nhị phân không phải là Unicode.
GSED có thể xử lý tệp văn bản Unicode ở độ phân giải CodePoint, bao gồm và đặc biệt là \ r \ n (Windows) ... và nếu có thể, nó có mong đợi UTF-8, UTF-16 hay không? và SED phát hiện mã hóa như thế nào?


1
Thông thường unicode được chỉ định với tùy chọn \ uXXXX. Hãy dùng thử ứng dụng biên dịch sky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

Câu trả lời:


1

Tôi không biết nhiều về sed, nhưng sau một vài lần vất vả, có vẻ như nó đã hỗ trợ nhiều loại trang mã thông qua biến môi trường LANG. Tôi tin rằng UTF-8 trên thực tế là mặc định khi không có LANG. Tôi không biết cổng Windows được thiết lập như thế nào. Tôi có một sự nghi ngờ mạnh mẽ rằng sed thực hiện không xử lý phát hiện nào trên luồng đầu vào.

Nguồn: /programming/67410/why-does-sed-fail-with-i quốc- char character-and-how-to -fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

Bạn cũng có thể thử thoát các ký tự như được đề cập ở đây: http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html Mặc dù điều đó có vẻ rất cồng kềnh.


@Mathew: Cảm ơn. Có vẻ như vấn đề có thể không nằm ở chính SED.exe, nhưng theo cách Windows không xử lý tốt các trang mã trong bảng điều khiển cmd.exe của nó. Có thể nó hoạt động trong PowerShell của nó, nhưng nếu tôi phải đến đó, thay vào đó tôi sẽ tập trung vào Python. Theo như tôi có thể thấy, niềm tự hào và niềm vui của Windows, UTF-16 (mã trang 1200, msdn.microsoft.com/en-us/l Library / dd317756% 28VS85% 29.aspx ) chỉ khả dụng cho các ứng dụng được quản lý , bất kể điều đó có nghĩa là gì, nhưng nó chắc chắn không hoạt động trong bảng điều khiển .. Chuyển đổi sang UTF-8 trở lại? Không đời nào! Python ở đây tôi đến. (hoặc 'Nix và Bash)
Peter.O

Nghe có vẻ tốt với tôi. Tôi hơi bối rối về cách cmd.exe gây ra vấn đề và cách Python giải quyết nó (bên cạnh sức mạnh ma thuật nổi tiếng của Python ( xkcd.com/353 )), nhưng tôi sẽ không giả vờ hiểu những điều mơ hồ của cmd.exe. Chúc bạn may mắn!
Vanessa Phipps

@fred: Đọc: .NET.
Hello71

2
Tôi đã giải quyết vấn đề ... Tôi đã bỏ MS hoàn toàn khoảng 6 tháng trước và hiện đang sử dụng Ubuntu .. Nó mượt như tơ ... (và tôi không nhìn lại ...
Peter.O
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.