[英]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.