首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在unicode窗体之间进行转换:字符串、名称、数字

如何在unicode窗体之间进行转换:字符串、名称、数字
EN

Stack Overflow用户
提问于 2021-12-09 16:44:34
回答 2查看 204关注 0票数 5

我最近更频繁地使用unicode,并想知道是否有命令行工具在其窗体之间转换unicode。

很高兴能说出:

代码语言:javascript
复制
uni_convert "☃" --string

并知道字符串在unicode中被定义为“雪人”。

EN

回答 2

Stack Overflow用户

发布于 2021-12-09 16:44:34

我将代码拆分为一个文件,并创建了一个repo:转换

票数 2
EN

Stack Overflow用户

发布于 2021-12-09 17:08:02

这是一只鹰来做这件事。

从提供最新名称的这个文件中下载unicode.org。

然后:

代码语言:javascript
复制
q=$(printf '%x\n' \'☃)
awk '/^[[:xdigit:]]+/{
    str=$0
    sub(/^[[:xdigit:]]+[[:blank:]]+/,"",str)
    names[$1]=str
}
END{ print names[q] }
' q="$q" names.txt

指纹:

代码语言:javascript
复制
SNOWMAN

如果你想走另一条路:

代码语言:javascript
复制
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}"

指纹:

代码语言:javascript
复制

如果您有GNU awk,您可以轻松地将十六进制索引转换为十进制,并可以从内部打印。这允许通过定义qr来使用单个源文件,并以一种或另一种方式使用

代码语言:javascript
复制
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
SNOWMAN
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70293610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档