如果我在Java中将byte
转移到char
,我遇到以下问题:
在Netbeans中都是O.K.但是如果我从Windows cmd运行程序我遇到charset问题。我不知道为什么。
怎么办?
代码:
char tmp = (byte) charFromByteInt; // it's byte in int variable
答案 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;