为什么printf“缩小”变音符号?
如果我执行以下简单脚本: #!/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 也就是说,带有变音符号的文字(例如ü)会被每个变音符号“缩小”一个字符。 当然,我在某个地方有一些错误的设置,但是我无法弄清楚可能是哪个。 如果文件的编码为UTF-8,则会发生这种情况。 如果我将其编码更改为latin-1,对齐方式是正确的,但是变音符号却被错误地呈现: Fr�chte und Gem�se foo Milchprodukte bar 12345678901234567890 baz