2
เหตุใด printf“ umlaut” umlaut?
ถ้าฉันรันสคริปต์ง่าย ๆ ต่อไปนี้: #!/bin/bash printf "%-20s %s\n" "Früchte und Gemüse" "foo" printf "%-20s %s\n" "Milchprodukte" "bar" printf "%-20s %s\n" "12345678901234567890" "baz" มันพิมพ์: Früchte und Gemüse foo Milchprodukte bar 12345678901234567890 baz นั่นคือข้อความที่มีเครื่องหมาย umlauts (เช่นü) คือ "หด" โดยอักขระหนึ่งตัวต่อ umlaut แน่นอนฉันมีการตั้งค่าผิดบางแห่ง แต่ฉันไม่สามารถคิดได้ว่าจะเป็นแบบไหน สิ่งนี้จะเกิดขึ้นหากการเข้ารหัสไฟล์เป็น UTF-8 หากฉันเปลี่ยนการเข้ารหัสเป็น latin-1 การจัดตำแหน่งนั้นถูกต้อง แต่ umlauts แสดงผลไม่ถูกต้อง: Fr�chte und Gem�se …