我试图使用IBM代码页将一串ASCII字符转换为EBCDIC。 转换是正确的,除了小写字母'a'被转换为无法打印的字符。
以下是在Windows 7上运行的groovy脚本的一部分,说明了这个问题。
以下是在Windows 7上运行的groovy脚本的一部分,说明了这个问题。
groovy:000> letters='abcdABCD'
===> abcdABCD
groovy:000> String.format("%04x", new BigInteger(1, letters.getBytes())
===> 6162636441424344
groovy:000> lettersx=new String(letters.getBytes('IBM500'))
===> ?éâä┴┬├─
groovy:000> String.format("%04x", new BigInteger(1, lettersx.getBytes()))
===> 3f828384c1c2c3c4
将字符串转换为EBCDIC后,除第一个字符外,所有字符均有效,第一个字符是小写字母'a'。无论如何我都找不到有关此问题的信息。我尝试了许多IBM代码页,但结果相同(IBM01140、IBM1047等)。
✔
(参见FAQ)。 - Adrian Pronk