GNU sed (สำหรับ Windows) สามารถจัดการ Unicode ได้หรือไม่ ถ้าเป็นเช่นนั้นมันเป็นปัญหาของโค้ดเพจ / โลแคลหรือสวิตช์?


10

ฉันใช้ GNU SED เปิดและปิดเป็นเวลาสองปีแล้ว มันหมุนฉันออกไปเล็กน้อย แต่ก็ทำได้ดี ... สำหรับชุดถ่านไบต์เดียว!
ตอนนี้ฉันแล้วสังเกตการอ้างอิงถึง GNU SED ว่าเป็น Unicode-aware แต่สิ่งที่ใกล้เคียงที่สุดที่ฉันเคยเห็นคือโหมด "binary" .. และไบนารีไม่ใช่ Unicode
GSED สามารถประมวลผลไฟล์ข้อความ Unicode ที่ความละเอียด CodePoint รวมถึงและโดยเฉพาะ \ r \ n (Windows) ... และถ้าทำได้สามารถคาดหวังว่า UTF-8, UTF-16 หรืออะไร? และ SED ตรวจจับการเข้ารหัสอย่างไร


1
โดยทั่วไปจะระบุ unicode ด้วยตัวเลือก \ uXXXX ลองใช้คอมไพล์ของ japanease guy sky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

คำตอบ:


1

ฉันไม่รู้เรื่องตัน แต่หลังจาก Google Googling อย่างหนักดูเหมือนว่าจะมีการสนับสนุนโค้ดเพจที่หลากหลายผ่านตัวแปรสภาวะแวดล้อม LANG ฉันเชื่อว่า UTF-8 อันที่จริงแล้วเป็นค่าเริ่มต้นหากไม่มี LANG ฉันไม่ทราบวิธีการตั้งค่าพอร์ต Windows ฉันมีความสงสัยอย่างมากว่า sed ไม่ได้ทำการประมวลผลการตรวจจับเลยในสตรีมอินพุต

แหล่งที่มา: /programming/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 ซึ่งดูเหมือนว่าจะยุ่งยากมาก


@ Matthew: ขอบคุณ มันเริ่มที่จะดูเหมือนว่าปัญหาอาจไม่ได้อยู่กับ SED.exe แต่ในทางที่ Windows ไม่สามารถจัดการกับโค้ดเพจได้เป็นอย่างดีในคอนโซล cmd.exe อาจจะใช้งานได้ใน PowerShell แต่ถ้าฉันต้องไปที่นั่นฉันควรจะเน้นที่ Python แทน เท่าที่ฉันเห็น Windows มีความภาคภูมิใจและปิติยินดี UTF-16 (รหัสหน้า 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx ) มีเฉพาะแอปพลิเคชันที่ได้รับการจัดการสิ่งที่หมายถึง แต่มันก็ไม่ได้ทำงานในคอนโซล .. แปลงเป็น UTF-8 และกลับมา? ไม่มีทาง! Python ที่นี่ฉันมา (หรือ 'ระวังและทุบตี)
Peter.O

ฟังดูดีสำหรับฉัน. ฉันสับสนว่า cmd.exe เป็นสาเหตุของปัญหาอย่างไรและ Python แก้ปัญหาได้อย่างไร (นอกเหนือจากพลังเวทย์มนตร์ที่รู้จักกันดีของ Python ( xkcd.com/353 )) แต่ฉันจะไม่แกล้งทำความเข้าใจกับคนจรจัด ของ cmd.exe ขอให้โชคดีกับคุณ!
Vanessa Phipps

@fred: อ่าน:. NET
Hello71

2
ฉันแก้ปัญหาแล้ว ... ฉันทิ้ง MS ไปเมื่อประมาณ 6 เดือนที่แล้วและตอนนี้ใช้ Ubuntu .. มันราบรื่นเหมือนไหม ... (และฉันไม่ได้มองย้อนกลับไป ...
Peter.O
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.