如何使用 \*nix 中的控制台工具将 \\uXXXX unicode 转换为 UTF-8

新手上路,请多包涵

我使用 curl 来获取一些 URL 响应,它是 JSON 响应,它包含 Unicode 转义的国家字符,例如 \u0144 (ń)\u00f3 (ó)

如何将它们转换为 UTF-8 或任何其他编码以保存到文件中?

原文由 Krzysztof Wolny 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 549
2 个回答

我不知道您使用的是哪个发行版,但应该包括 uni2ascii

 $ sudo apt-get install uni2ascii

它只依赖于 libc6,所以它是一个轻量级的解决方案(uni2ascii i386 4.18-2 在 Ubuntu 上是 55,0 kB)!

然后使用它:

 $ echo 'Character 1: \u0144, Character 2: \u00f3' | ascii2uni -a U -q
Character 1: ń, Character 2: ó

原文由 raphaelh 发布,翻译遵循 CC BY-SA 3.0 许可协议

可能有点难看,但是 echo -e 应该这样做:

 echo -en "$(curl $URL)"

-e 解释转义, -n 抑制换行 echo 通常会添加。

注意: \u 转义适用于 bash 内置 echo ,但不是 /usr/bin/echo

正如评论中所指出的,这是 bash 4.2+,并且 4.2.x 有一个处理 0x00ff/17 值 (0x80-0xff) 的错误。

原文由 Kevin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题