2010-03-03 9 views
0

im en utilisant la base de données postgre il a le codage UTF-8 en ce que unicode pour mot marathi Pimpri est comme ceci \ u092A \ u093F \ u0902 \ u092A \ u0930 \ u0940 \ u0935 \ u093E \ u0918 \ u0947 \ u0930 \ u0947reconnaissance unicode est-ce utf-8 utf-16 ou toute autre chose?

et quand côté client j'ai écrit un code String tempString = Strings.toEscapedUnicode (strQueryString [1]); il générer unicode comme ce u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u00BF \ u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u0082 \ u00E0 \ u00A4 \ u00B0 \ u00E0 \ u00A5 \ u0080

j'ai donc problème pour l'assortir.

J'ai un problème pour savoir dans quel format formate? u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u00BF \ u00E0 \ u00A4 \ u00AA \ u00E0 \ u00A4 \ u0082 \ u00E0 \ u00A4 \ u00B0 \ u00E0 \ u00A5 \ u0080 est ce en UTF8 ou utf16 ou UTF32

et aussi comment convertir utf8 en utf16 en utilisant java est-il une méthode pour cela ???

Répondre

1

Les données dans votre base de données semblent être UTF-16. Mais votre code de client semble être UTF-8

En regardant vos données, le premier caractère (DEVANAGARI LETTER PA) qui est \u092A en UTF-16 et 0xE0 0xA4 0xAA en UTF-8.

En Java, vous pouvez convertir votre chaîne en séquence d'octets pour un codage spécifique en utilisant l'une des surcharges getBytes.

2

Pourquoi devez-vous gérer le codage? Le pilote JDBC PostgreSQL doit le gérer, Java utilise UTF-16 en interne. Donc, vous pouvez simplement comparer la chaîne obtenue par ResultSet.getString() avec n'importe quelle autre chaîne ou passer une chaîne comme paramètre si vous utilisez PreparedStatement.setString().