我正在尝试在 Unix 中找到一个将英文字符翻译成俄语的命令。所以我首先列出了我的框中可用的俄语语言环境:
#locale -a | grep -i RU
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
现在我正在尝试使用命令将英语字符转换为俄语字符或者等效翻译:
#iconv -f en_US.utf8 "Hi" -t ru_RU.utf8
iconv: conversions from `en_US.utf8' and to `ru_RU.utf8' are not supported
我尝试了各种谷歌页面和其他命令,但无法找到适合我目的的确切命令?
请建议哪个命令会产生预期的结果。
答案1
消息
iconv: conversions from `en_US.utf8' and to `ru_RU.utf8' are not supported
可以改进,例如
iconv: conversions from `en_US.utf8' and to `ru_RU.utf8' is pointless
或者
iconv: conversions from `en_US.utf8' and to `ru_RU.utf8' will not modify your data
iconv
翻译字符编码。虽然它可以识别一个人的名字语言环境,之间存在差异编码和语言环境:
- 编码列出所有可用的字符代码在字符集中,参考外貌的字符(称为字形)。
- 语言环境讲述a中的角色如何给定编码例如,哪些是可打印的,哪些是不可打印的,哪些用于特殊情况,例如小数分隔符。它还处理与字符集无关的事情,例如一周中各天的名称。
由于语言环境en_US.utf8
和ru_RS.utf8
使用相同的编码,iconv
无关。由于它无法猜测您可能想要做什么,因此它会告诉您“不支持”转换。
什么iconv
确实支持是之间的转换不同的编码。例如,在您的列表中
ru_RU.iso88595
ru_RU.koi8r
不要使用 UTF-8 编码。这些用于少于 256 个字符的字符集; UTF-8 用于 Unicode,其中许多超过 256 个字符。
至于使用什么是正确的命令,这取决于输入文件的实际编码是什么(可能是 UTF-8,也可能是 ISO-8859-1),以及您是否希望输出为 UTF- 8(没问题)或其他编码之一(可能性较小,并且涉及一些信息丢失)。