BASH: 将 Unicode 十六进制转换为字符串

BASH: Convert Unicode Hex to String

我将此文本文件保存在我的服务器上,其中包含十六进制十进制格式的 Unicode 字母,例如 \u3010 等。我想转换它们以使它们易于阅读而不需要删除正常的可读文本,如 "Blessed Messiah and the Tower" 等

\u3010Vocaloid 10\u3011Blessed Messiah and the Tower of AI\u3010Originl MV\u3011
\u3010Otomachi Una\u3011 Hate It! Hate It! Huge Ego!
\u3010Otomachi Una\u3011Melt \u3010Cover\u3011
\u3010GUMI\u3011 \u604b\u611b\u30c7\u30b3\u30ec\u30fc\u30c8 \u3010\u30aa\u30ea\u30b8\u30ca\u30ebMV\u3011

我已经尝试 运行 cat FILE | hexdump -vcat FILE | iconv -f utf16,但没有成功。我什至尝试了 cat FILE | ascii2uni -a U -q,这是有效的,但存在一些图形缺陷,例如

【Otomachi Una】Melt over】

如何正确编码这些字符?我更喜欢大多数 unix 系统中内置的命令。

这些是被 echo -e 识别为表示 Unicode 字符的相同文字。

$ echo -e "$(<FILE)"
【Vocaloid 10】Blessed Messiah and the Tower of AI【Originl MV】
【Otomachi Una】 Hate It! Hate It! Huge Ego!
【Otomachi Una】Melt 【Cover】
【GUMI】 恋愛デコレート 【オリジナルMV】

一个解决方案:

printf '%s' "$(<file)"

其中 file 是包含您的 unicode 文本的文件的名称