我们的需求是将EBCDIC文本发送到主机。由于其中包含了一些中文字符,因此它们处于UTF8格式。
有没有一种方法可以将这些UTF-8字符转换为EBCDIC?
谢谢, Raj Mohan
有没有一种方法可以将这些UTF-8字符转换为EBCDIC?
谢谢, Raj Mohan
byte[] ebcdta="Hello World".getBytes("CP037"); // get bytes for EBCDIC codepage 37
您可以在IBM文档网站上找到更多信息。
com.ibm.as400.access.AS400Text
类。int codePageNumber = 420;
String codePage = "CP420";
String sourceUtfText = "أحمد يوسف صالح";
AS400Text converter = new AS400Text(sourceUtfText.length(), codePageNumber);
byte[] bytesData = converter.toBytes(sourceUtfText);
String resultedEbcdicText = new String(bytesData, codePage);
Charset.availableCharsets().keySet()
,EBCDIC页面的名称为IBM...
(如cp500
用于IBM500
,可以通过Charset.forName("IBM500").aliases()
查看)。对于中档 AS/400(现在称为 IBM i),最好使用 IBM Java Toolkit(jt400.jar),它可以透明地执行所有这些操作(可能会略微提示)。
请注意,在 Java 内部,一个字符是一个 16 位值,而不是 UTF-8(那是一种编码方式)。