iconv 无法将带圆圈的数字与日语编码相互转换

iconv 无法将带圆圈的数字与日语编码相互转换

带圆圈的数字 (U+2460 .. U+2468) 的 unicode 范围无法与任何日语编码(EUC-JP、Shift-JIS、ISO-2022-JP)相互转换,即使它们存在在那里,我经常会碰到它们。

% echo ①②③③④⑤⑥⑦⑧⑨ | iconv -f utf-8 -t euc-jp
iconv: (stdin):1:0: cannot convert
% echo ①②③③④⑤⑥⑦⑧⑨ | iconv -f utf-8 -t shift-jis
iconv: (stdin):1:0: cannot convert
% echo ①②③③④⑤⑥⑦⑧⑨ | iconv -f utf-8 -t iso-2022-jp
iconv: (stdin):1:0: cannot convert

% printf "\xad\xa1\xad\xa2\xad\xa3\xad\xa3 \xad\xa4\xad\xa5\xad\xa6\xad\xa7\xad\xa8\xad\xa9" | iconv -f euc-jp -t utf-8 
iconv: (stdin):1:0: cannot convert
% printf "\x87\x40\x87\x41\x87\x42\x87\x42 \x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x87\x48" | iconv -f shift-jis -t utf-8 
iconv: (stdin):1:0: cannot convert

是什么赋予了?

答案1

这些字符实际上并不存在于这三种编码中。您实际上想要EUC-JIS-2004akaEUC-JISX0213而不是普通的 EUC-JP,SHIFT_JIS-2004或者CP932代替 SHIFT_JIS,而ISO-2022-JP-2004不是普通的 ISO-2022-JP。

% printf "\xad\xa1\xad\xa2\xad\xa3 \xad\xa4\xad\xa5\xad\xa6\xad\xa7\xad\xa8\xad\xa9" | iconv -f euc-jisx0213 -t utf-8 
①②③ ④⑤⑥⑦⑧⑨

相关内容