1
假設中文字符「你好」中有一個字符串,將字符串轉換爲Unicode的正確結果是「\ u4f60 \ u597d」,結果我從下面的代碼中得到是「\ ufffd \ ufffd \ ufffd」。爲什麼???將中文字符串轉換爲Java中的Unicode
Java代碼:
String str = "你好";
public String testEncoding(String str) {
String result = "";
for(char ch : str.toCharArray())
result += "\\u" + Integer.toHexString(ch | 0x10000).substring(1);
System.out.print(result);
return result;
}
String text = testEncoding("你好");
public static void input(String text){
execShellCmd(String.format("am broadcast -a ADB_INPUT_TEXT --es msg \'%s\'", text));
}
private static void execShellCmd(String cmd) {
try {
Process process = Runtime.getRuntime().exec("su");
OutputStream outputStream = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.write(cmd.getBytes("UTF-8"));
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
如果設置了文本= 「\ u4f60 \ u597d」 中,終端顯示 「你好」。
您的終端配置爲支持UTF-8嗎? – Makoto