一个符号替换多个符号时,是否存在从UTF-8到CP1251的音译?

Is there transliteration from UTF-8 to CP1251 when one symbol substitutes with several symbols?

我使用带选项 translit 的函数 iconv。

一个符号替换多个符号时,是否有UTF-8到CP1251的音译? 我在哪里可以搜索该信息?我正在使用 iconv.

有一些,具体取决于实施和语言环境:

$ echo '℀⇒½' | iconv -f UTF8 -t CP1251//TRANSLIT
a/c=> 1/2 

这些分别是U+2100 ACCOUNT OF音译为a/c,U+ 21D2 RIGHTWARDS DOUBLE ARROW 音译为=>, U+00BDVULGAR FRACTION ONE HALF音译为1/2(包括空格)。

我在 GNU libc 源代码中找到了这些,https://github.com/lattera/glibc/blob/master/locale/C-translit.h.in;不同的实现可能根本不会以相同的方式音译这些字符。

最明显的是

$ echo 'ß' | iconv -f UTF-8 -t CP1251//TRANSLIT
ss

此外,如果您的语言环境是德语,变音符号将根据德语规则进行音译(是的,音译取决于语言环境)。

$ export LC_ALL=de_DE.UTF-8
$ echo 'Füße' | iconv -f utf-8 -t CP1251//TRANSLIT
Fuesse

(有些版本会打印 F"usse)。