相关疑难解决方法(0)

为什么 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"
Run Code Online (Sandbox Code Playgroud)

它打印:

Früchte und Gemüse foo
Milchprodukte        bar
12345678901234567890 baz
Run Code Online (Sandbox Code Playgroud)

也就是说,带有变音符号(例如ü)的文本每个变音符号“缩小”一个字符。

当然,我在某处有一些错误的设置,但我无法弄清楚可能是哪一个。

如果文件的编码为 UTF-8,则会发生这种情况。

如果我将其编码更改为 latin-1,则对齐是正确的,但变音符号呈现错误:

Fr?chte und Gem?se   foo
Milchprodukte        bar
12345678901234567890 baz
Run Code Online (Sandbox Code Playgroud)

bash unicode printf

58
推荐指数
3
解决办法
7574
查看次数

标签 统计

bash ×1

printf ×1

unicode ×1