在 Java 中将字节传输到 char - 在 CMD 中
Transfer byte to char in Java - in CMD
如果我在Java中将byte
转移到char
,我会遇到以下问题:
在 Netbeans 中全是 O.K,但是如果我从 Windows cmd 运行 程序,我遇到了字符集问题。不知道为什么。
怎么办?
代码:
char tmp = (byte) charFromByteInt; // it's byte in int variable
根据你的输出图像猜测这是一个字符集问题。
以下代码段 return 输入字符串的相同字节值。
String testString = "TEST for Whosebug";
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
/ int
值)。
如果我在Java中将byte
转移到char
,我会遇到以下问题:
在 Netbeans 中全是 O.K,但是如果我从 Windows cmd 运行 程序,我遇到了字符集问题。不知道为什么。
怎么办?
代码:
char tmp = (byte) charFromByteInt; // it's byte in int variable
根据你的输出图像猜测这是一个字符集问题。
以下代码段 return 输入字符串的相同字节值。
String testString = "TEST for Whosebug";
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
/ int
值)。