我已經寫了簡單的程序如下輸出打招呼阿拉伯語:「سلام」,但它在控制檯輸出不正確:的println錯誤打印時字節
import static java.lang.Integer.toBinaryString;
import java.util.Arrays;
public class testOfPrintln {
public static void main(String []strings){
String test="salam";
String test2="سلام";//unicode , arabic
byte []strbytes=test.getBytes();
int i=1;
for(byte bb:strbytes)
System.out.println(i++ + " -> " + bb);
byte []strbytes2=test2.getBytes();
i=1;
for(byte bb2:strbytes2){
System.out.println(i++ + " -> " + bb2);
}
}
}
輸出:
1 -> 115
2 -> 97
3 -> 108
4 -> 97
5 -> 109
1 -> -40
2 -> -77
3 -> -39
4 -> -124
5 -> -40
6 -> -89
7 -> -39
8 -> -123
爲什麼在字節前有一個「 - 」字符?例如:-123 tnx。
添加128是錯的。雖然結果將在0到255的範圍內,但所有數字將具有不同的表示形式,並且「((byte)(bb + 128))!!= bb」。正確的方法是'和'它。 – Boann
你是對的。我會相應地改變我的答案。 –