Конвертация строки в коды символов Unicode

342
27 января 2017, 06:02

Имею приложение. 2 EditText, один - поле ввода текста в utf, второй - вывод преобразованного текста в формате \uXXXX\uXXXX\uXXXX Я ввожу: "Привет", а в ответ должен получить "\u041f\u0440\u0438\u0432\u0435\u0442"

Нашел в интернете вот такой код, но у меня не заработало:

String ucs = ed_utf.getText().toString(); //получаю входные данные
try {
    byte[] utf8 = ucs.getBytes("UTF-8");
    String unicodeData = new String(utf8, "UTF-8");
    ed_unicode.setText(unicodeData); //передаю строку в EditText2
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

Выводится то же самое, что в входном EditText

Answer 1

Можно попробовать вот так:

private static String getUnicodeCodes(String str) {
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < str.length(); i++)
        result.append("\\u" + Integer.toHexString(str.charAt(i) | 0x10000).substring(1));
    return result.toString();
}

Решение позаимствованно отсюда

READ ALSO
Android studio layout

Android studio layout

Всем доброго времени суток

298
Оператор try c ресурсами

Оператор try c ресурсами

Зачем нужен усовершенствованный и появившийся в JDK 7 оператор try-c-ресурсами?

371