Как отобразить не английский символ в onKey?

Собственно простой код. Я ставлю слушатель клавиатуры, получаю символ с помощью getUnicodeChar все хорошо пока я ввожу англиские буквы, когда ввожу русские или другие не английские, получаю вопросики кракозяблы, как их правильно то отобразить?

 @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {
        char unicodeChar = (char)keyEvent.getUnicodeChar();
        testStr = String.valueOf(unicodeChar);
        L.i("testStr="+testStr);
        return false;
    }

Ответы (1 шт):

Автор решения: woesss

Не знаю почему, но всё что за пределами ASCII клавиатура (по крайней мере AOSP) посылает не символами, а строками.
Получить можно так:

    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
        if (event.getAction() == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {
            testStr = keyEvent.getCharacters();
        } else {
            char unicodeChar = (char)keyEvent.getUnicodeChar();
            testStr = String.valueOf(unicodeChar);
        }
        L.i("testStr="+testStr);
        return false;
    }
→ Ссылка