2016-11-26 111 views
-2
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

代碼:

+0

@ user4015632爲何投票 – user4015632

+0

投票的原因是什麼? – user4015632

回答

2

你可以使用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 
+1

如果我有另一個特殊字符如「ñ」,該怎麼辦?這些有沒有一種方法可以將任何特殊字符轉換爲等效的UTF-8值? – user4015632

+3

查看['StringEscapeUtils'](https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html)和'escapeHtml'。 –

+0

StringEscapeUtils解決了這個問題! – user4015632

-3

能否請您嘗試以下線路:

byte ptext[] = original.getBytes("UTF8"); 
String value = new String(ptext, "UTF8"); 
+0

我仍然得到這個 - >這是我的字符串valúe。期望的解決方案 - >這是我的字符串val ú e – user4015632

0

Im trying to encode the above string to UTF-8 equivalent but to replace only >special character (ú) with -- "&#250 ;" in this case.

我不知道什麼編碼「ú」是,但你有沒有試過看URLEncoder課?它不會完全按照你問的方式對字符串進行編碼,但它可以擺脫幽靈般的角色。

+0

URLEncoder類使用全部+符號等對純文本進行編碼,這實際上並不奏效。但是StringEscapeUtils更適合Html頁面文本或標題 – user4015632