распознавание юникода это utf-8 utf-16 или что-то еще? - PullRequest
0 голосов
/ 03 марта 2010

Я использую базу данных postgre с кодировкой UTF-8 в этом Unicode для маратхи слово Pimpri, как это \ u092F \ u0902 \ u092A \ u0940 \ u093E \ u0918 \ u0947 \ u0930 \ u0947

и когда на стороне клиента я написал код String tempString = Strings.toEscapedUnicode (strQueryString [1]); это генерирует Unicode, как это u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u00BF \ u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u0082 \ u00E0 \ u00A4 \ u00B0 \ u00E0 \ u00A5 \ u0080

, поэтому у меня есть проблема с сопоставлением.

У меня проблема в том, как распознать, в каком формиате находится? u00E0 \ u00AA \ u00E0 \ u00AF \ u00E0 \ u00A4 \ u00AA \ u00E0 \ u0082 \ u00E0 \ u00A4 \ u00B0 \ u00E0 \ u00A5 \ u0080 - это все равно в uf8 или в uff или в 006

, а также как конвертировать utf8 в utf16 с помощью Java. Есть ли способ для этого ???

Ответы [ 2 ]

2 голосов
/ 03 марта 2010

Почему вы должны справиться с кодировкой? Драйвер JDBC PostgreSQL должен справиться с этим, Java использует UTF-16 для внутреннего использования. Таким образом, вы можете просто сравнить полученную ResultSet.getString() строку с любой другой строкой или передать любую строку в качестве параметра, если используете PreparedStatement.setString().

1 голос
/ 03 марта 2010

Данные в вашей базе данных выглядят как UTF-16.

Но ваш код клиента выглядит как UTF-8. Глядя на ваши данные, первый символ ( DEVANAGARI LETTER PA ) - \u092A в UTF-16 и 0xE0 0xA4 0xAA в UTF-8

В Java вы можете преобразовать вашу строку в последовательность байтов для определенной кодировки, используя одну из перегрузок getBytes .

...