簡體   English   中英

escaping Java 字符串到 utf-8

[英]escaping Java string to utf-8

我正在尋找用於將常規字符串轉換為 utf-8 字符串的 java 工具。

例如

input: special-數據應用-text

output: special-%u6570%u636E%u5E94%u7528-text

(注意前面的“%u”)

兩件事情:

  1. 您要作為結果的字符串不是UTF-8,至少您作為示例輸入的字符串是UTF-16編碼的(Java在內部使用UTF-16)

  2. 為您提供所需字符串的代碼示例:

     String str = "special-數據應用-text"; StringBuilder builder = new StringBuilder(); for(char ch: str.toCharArray()) { if(ch >= 0x20 && ch <= 0x7E) { builder.append(ch); } else { builder.append(String.format("%%u%04X", (int)ch)); } } String result = builder.toString(); 

讓我向您推薦Unbescape [ http://www.unbescape.org ]

在其他轉義操作(HTML,XML等)中,它將允許您使用以下方法轉義Java文字:

final String escaped = JavaEscape.escapeJava(text);

根據StackOverflow規則免責聲明:我是Unbescape的作者。

你可以嘗試以下

StringBuilder b = new StringBuilder();

for( char c : s.toCharArray() ){
    if( ( 1024 <= c && c <= 1279 ) || ( 1280 <= c && c <= 1327) || ( 11744 <= c && c <= 11775) || ( 42560 <= c && c <= 42655)  ){
        b.append( "\\u" ).append( Integer.toHexString(c) );
    }else{
        b.append( c );
    }
}

return b.toString();

這里找到

嘗試這個

String s= URLEncoder.encode(str, "UTF-8").replaceAll("%(..)%(..)", "%u$1$2");

對於那些不需要 java 工具,但需要在線工具的人,這里是工具https://itpro.cz/juniconv/

暫無
暫無

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

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