Ecco un frammento di codice di lavoro di effettuare la conversione:
public class HexTest {
public static void main(String[] args) {
String testStr = "hello日本語 ";
System.out.println(stringToUnicode3Representation(testStr));
}
private static String stringToUnicode3Representation(String str) {
StringBuilder result = new StringBuilder();
char[] charArr = str.toCharArray();
for (int i = 0; i < charArr.length; i++) {
result.append("\\u").append(Integer.toHexString(charArr[i] | 0x10000).substring(1));
}
return result.toString();
}
}
che mostrano:
\ u0068 \ u0065 \ u006c \ u006c \ u006f \ u65e5 \ u672c \ u8a9e \ u 0020
Se si desidera eliminare gli zeri supplementari, è necessario elaborarlo come descritto in here.
Ecco un'altra versione per eseguire la conversione, passando "This is an apple"
si ottiene
U54 \ u68 \ U69 \ U73 \ U20 \ U69 \ U73 \ U20 \ U61 \ U6E \ U20 \ U61 \ U70 \ \ U70 \ u6c \ U65
utilizzando:
private static String str2UnicodeRepresentation(String str) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
int cp = Character.codePointAt(str, i);
int charCount = Character.charCount(cp);
//UTF characters may use more than 1 char to be represented
if (charCount == 2) {
i++;
}
result.append(String.format("\\u%x", cp));
}
return result.toString();
}
Ecco un modo per farlo con ogni singolo personaggio ... può orientare nella giusta direzione: http: //www.java2s. com/tutorial/Java/0120__Development/Convertsthestringtot heunicodeformat.htm – CubeJockey
Non dovrebbe la prima parte della stringa convertita essere \\ x54? – JamesB
Questo potrebbe aiutare: http://www.java2s.com/Code/Java/I18N/ConvertintoHexadecimalnotationofUnicode.htm – JamesB