我正在研究 Debian 及其衍生系统。我想将原始输入 ISO-IR-87 转换为 UTF-8。有简单的方法吗?
以供参考:
% iconv -l | grep "IR-8"
ISO-IR-8-1//
ISO-IR-84//
ISO-IR-85//
ISO-IR-86//
ISO-IR-88//
ISO-IR-89//
% dpkg -S /usr/bin/iconv
libc-bin: /usr/bin/iconv
% apt-cache policy libc-bin
libc-bin:
Installed: 2.36-9+deb12u3
Candidate: 2.36-9+deb12u3
Version table:
*** 2.36-9+deb12u3 500
500 http://security.debian.org/debian-security bookworm-security/main amd64 Packages
100 /var/lib/dpkg/status
2.36-9+deb12u2 500
500 http://deb.debian.org/debian bookworm/main amd64 Packages
重新编码似乎可以在我的系统上运行(感谢@frostschutz):
% echo -n 'ABC' > t.txt
% recode -v UTF-8..JIS_X0208 t.txt
Request: UTF-8..:libiconv:..JIS_X0208
Shrunk to: UTF-8..JIS_X0208
Recoding t.txt... done
% recode -v JIS_X0208..UTF-8 t.txt
Request: JIS_X0208..:libiconv:..UTF-8
Shrunk to: JIS_X0208..UTF-8
Recoding t.txt... done
答案1
GNUrecode
似乎支持它:
$ 重新编码-l | grep -i ISO-IR-87 JIS_X0208 csISO87JISX0208ISO-IR-87JIS0208 JISX0208.1983-0 JISX0208.1990-0 JIS_X0208-1983 JIS_X0208-1990 X0208
所以:
recode ISO-IR-87..UTF-8
看起来它还有很多其他名称(参见https://en.wikipedia.org/wiki/JIS_X_0208甚至更多)但它们似乎都不受iconv
GNU libc 的支持。该维基百科文章表明,日语字符集未正确指定,实现之间存在不兼容性,并且当前未使用,这可以解释为什么它没有包含在 GNU libc 中(即使它已包含在 GNU 的独立 iconv 库中,如 @ 所示)霜舒兹)。