簡體   English   中英

在Android / Java中將字符串中的非英語字符替換為utf-8字符

[英]Replace non english character in a string with utf-8 character in Android / Java

我需要將一些非英文字符替換為\\ u00格式。

像:BetalingsMåde,所以可疑字符是å,需要轉換為\\ u00e5

我什至都嘗試過

updateRequest = updateRequest.replaceAll(“ [^ \\ p {ASCII}]”,“”);

但這只會刪除非英文字符。

我還需要通過帶有HTTP請求的POST通過POST發送此請求(也嘗試過

setRequestProperty(“ content-type”,“ application / json; charset = utf-8”);

沒有運氣,所以如果有答案的話。

提前致謝!

如果要轉換為Unicode轉義的字符串,可以執行以下操作:

org.apache.commons.lang3.StringEscapeUtils.escapeJava("Your string to escape");

它是Apache Commons Lang 3軟件包的一部分。

在java中,String / char已經包含Unicode文本。 但是,有些事情可能出錯了。 弄亂String總是意味着必須更正入口點。

Java源代碼中的硬編碼字符串對於編譯器和編輯器需要相同的編碼。 如今,我將很難將IDE的編碼設置為UTF-8。

默認情況下, 屬性文件受ISO-8859-1的限制,這意味着應使用\\uXXXX

讀取文件必須以指定的文件的編碼進行讀取。 通常,有一種不進行編碼的重載方法。 並且不應該使用舊的FileReader / FileWriter,它們使用當前的平台編碼-不可移植。

如果錯誤地定義了數據庫,或者JDBC驅動程序可以與其他編碼進行通信,則來自數據庫的文本僅是有問題的。

我不確定您是否需要以下內容,它的作用與java2ascii工具的作用相同。

String toAscii(String s) {
    StringBuilder sb = new StringBuilder(s.length() * 9 / 10);

    for (int i = 0; i < s.length(); ++i) {
        int ch = (int) s.charAt(i);
        if (0 < ch && ch < 128) {
            sb.append(ch);
        } else {
            sb.append(String.format("\\u%04x", ch));
        }
    }
    return sb.toString();
}

更可能使用setRequestProperty("content-type","text/json;charset=utf-8"); 因此確實使用了字符集(文本)。 甚至更有可能響應 ,而不是請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM