我最近更频繁地使用unicode,并想知道是否有命令行工具在其窗体之间转换unicode。
很高兴能说出:
uni_convert "☃" --string并知道字符串在unicode中被定义为“雪人”。
发布于 2021-12-09 16:44:34
我将代码拆分为一个文件,并创建了一个repo:转换
发布于 2021-12-09 17:08:02
这是一只鹰来做这件事。
从提供最新名称的这个文件中下载unicode.org。
然后:
q=$(printf '%x\n' \'☃)
awk '/^[[:xdigit:]]+/{
str=$0
sub(/^[[:xdigit:]]+[[:blank:]]+/,"",str)
names[$1]=str
}
END{ print names[q] }
' q="$q" names.txt指纹:
SNOWMAN如果你想走另一条路:
cp=$(awk '/^[[:xdigit:]]+/{
str=$0
sub(/^[[:xdigit:]]+[[:blank:]]+/,"",str)
other_names[str]=$1
}
END{ print other_names[q] }
' q="SNOWMAN" names.txt)
echo -e "\u${cp}"指纹:
☃如果您有GNU awk,您可以轻松地将十六进制索引转换为十进制,并可以从内部打印。这允许通过定义q或r来使用单个源文件,并以一种或另一种方式使用
gawk '/^[[:xdigit:]]+/{
str=$0
sub(/^[[:xdigit:]]+[[:blank:]]+/,"",str)
names[$1]=str
other_names[str]=$1
}
END{ print q ? names[q] : sprintf("%c", strtonum("0x" other_names[r])) }
' r='SNOWMAN' names.txt
☃
gawk '/^[[:xdigit:]]+/{
str=$0
sub(/^[[:xdigit:]]+[[:blank:]]+/,"",str)
names[$1]=str
other_names[str]=$1
}
END{ print q ? names[q] : sprintf("%c", strtonum("0x" other_names[r])) }
' q=$(printf '%x\n' \'☃) names.txt
SNOWMANhttps://stackoverflow.com/questions/70293610
复制相似问题