String original = "This is my string valúe";
我想上面的字符串編碼成UTF-8等價的,但只更換特殊字符(U) - 「ú」在這種情況下。的Java編碼特殊字符的字符串使用UTF-8字符
我使用下面的嘗試,但我得到一個錯誤:
Input is not proper UTF-8, indicate encoding !Bytes: 0xFA 0x20 0x63 0x61
代碼:
String original = "This is my string valúe";
我想上面的字符串編碼成UTF-8等價的,但只更換特殊字符(U) - 「ú」在這種情況下。的Java編碼特殊字符的字符串使用UTF-8字符
我使用下面的嘗試,但我得到一個錯誤:
Input is not proper UTF-8, indicate encoding !Bytes: 0xFA 0x20 0x63 0x61
代碼:
你可以使用String.replace(CharSequence, CharSequence)
和格式化的IO喜歡
String original = "This is my string valúe";
System.out.printf("Output : %s%n", original.replace("ú", "ú"));
它輸出(因爲我認爲你想要)
Output : This is my string valúe
如果我有另一個特殊字符如「ñ」,該怎麼辦?這些有沒有一種方法可以將任何特殊字符轉換爲等效的UTF-8值? – user4015632
查看['StringEscapeUtils'](https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html)和'escapeHtml'。 –
StringEscapeUtils解決了這個問題! – user4015632
能否請您嘗試以下線路:
byte ptext[] = original.getBytes("UTF8");
String value = new String(ptext, "UTF8");
我仍然得到這個 - >這是我的字符串valúe。期望的解決方案 - >這是我的字符串val ú e – user4015632
你似乎想用XML字符實體。
Appache Commons Lang有一個方法(在StringEscapeUtils中)。
Im trying to encode the above string to UTF-8 equivalent but to replace only >special character (ú) with -- "ú ;" in this case.
我不知道什麼編碼「ú」是,但你有沒有試過看URLEncoder
課?它不會完全按照你問的方式對字符串進行編碼,但它可以擺脫幽靈般的角色。
URLEncoder類使用全部+符號等對純文本進行編碼,這實際上並不奏效。但是StringEscapeUtils更適合Html頁面文本或標題 – user4015632
@ user4015632爲何投票 – user4015632
投票的原因是什麼? – user4015632