![](/img/trans.png)
[英]How to convert a mix string of normal English , Russian(Cyrillic) and encoded Russian string into normal string by using java
[英]Convert non english string to normal String in Java
我需要根據某些基准來驗證某些文本。
例如:
String a="La Panthère";
String b="La Panthère";
我知道字符串b
包含HTML文字,因此我正在使用Apache StringEscapeUtils
,它給了我
String b="La Panthère";
b=StringEscapeUtils.unescapeHtml(b);
輸出:-LaPanthère
但是我不知道字符串a中存儲了什么。 從SO的某個地方,我知道這可能是上升文字,因此在下面的代碼中進行了嘗試
a=Normalizer.normalize(a, Normalizer.Form.NFKD);
注意:我嘗試了所有形式的Normalizer,但沒有任何效果。
有人可以幫我如何使String a與b
相同的方式嗎?
正如Jesper所提到的, è
模式通常表示編碼錯誤。
那時,您已經不走運了。
建議不要采取補救措施,例如更換è
,也不安全。
對String
轉義或標准化超出了范圍,因為問題出在源頭,與HTML轉換或口音規范化無關。
但是,有一些簡單的習慣用法可以將String
轉換為不同的編碼。
下面的例子:
String
(在UTF-8環境中)。 String
)。 最后,將其打印出來並重新轉換為UTF-8。
String a = new String( "La Panthère".getBytes(Charset.forName("UTF-8")), Charset.forName("Cp1252") ); System.out.println(a); System.out.println( new String( a.getBytes(Charset.forName("Cp1252")), Charset.forName("UTF-8") ) );
產量
La Panthère
La Panthère
筆記
上面描述的轉換習慣用法意味着您知道如何預先對原始String
進行編碼。
當以下編碼用於相互解釋文本時,就會發生典型的編碼問題:
這里是Java支持的編碼及其規范名稱的列表。
在網絡環境中,通常需要先調用Javascript的encodeURIComponent函數在前端將值編碼,然后再將其發送到后端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.