在Java中将字节传输到char - 在CMD中

时间:2015-04-29 06:37:55

标签: java cmd char byte

如果我在Java中将byte转移到char,我遇到以下问题:

在Netbeans中都是O.K.但是如果我从Windows cmd运行程序我遇到charset问题。我不知道为什么。

怎么办?

代码:

char tmp = (byte) charFromByteInt; // it's byte in int variable

2 个答案:

答案 0 :(得分:0)

猜测输出图像是一个字符集问题。

以下代码段返回输入字符串的相同字节值。

@OneToMany(mappedBy = "department")
@OrderColumn(name = "index_id")
private List<Employee> employees;

<强>输出

String testString = "TEST for stackoverflow";

byte[] bytes = testString.getBytes(StandardCharsets.UTF_8);
System.out.println("bytes = " + Arrays.toString(bytes));

bytes = testString.getBytes(StandardCharsets.ISO_8859_1);
System.out.println("bytes = " + Arrays.toString(bytes));

由于控制台中的输出会在输入字符串中生成更多字符,因此您应该检查输出的来源(从中获取bytes = [84, 69, 83, 84, 32, 102, 111, 114, 32, 115, 116, 97, 99, 107, \ 111, 118, 101, 114, 102, 108, 111, 119] / byte值)。

答案 1 :(得分:-1)

你告诉char等于一个字节,Java无法转换它们。您必须将byte转换为char

byte charFromByteInt = (byte) Integer.toUnsignedLong(n);
char tmp = (char) charFromByteInt;