我有一个问题,当我尝试将 'é'
转换为 Hex 时,出现错误 "Type mismatch: cannot convert from int to byte"
代码如下:
public byte[] convertUnicode(String msg){
byte[] data = new byte[msg.length()];
for (int i = 0; i < msg.length(); i++) {
switch (msg.charAt(i)) {
case 'E': data[i] = 0x45; break;
case 'è': data[i] = 0xE9; break;
default: data[i] = 0x3F; break; // '?'
}
}
return data;
}
最好的问候。
最佳答案
对于超过 0x7F(127,Java 有符号字节的最大值)的值,您需要转换为 (byte),否则文字将被视为 int。
data[i] = (byte)0xE9;
但是看起来您正在尝试以特定编码获取 String 的字节,这更容易实现
byte[] bytes = msg.getBytes("ISO-8859-1"); // Or any other encoding of your choice
关于java - Ascii 到 Hex 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986532/