2016-09-20 4 views
0

J'utilise une variable String pour stocker la valeur de varchar à partir d'un ResultSet. Le problème est lorsque je sauvegarde cette valeur dans mon application. Il n'affiche pas les caractères chinois/coréens. Je suis sûr que le problème n'est pas lié au rendu dans mon application, car je suis capable d'afficher ces caractères à partir d'un objet Clob en utilisant le même code. Quel serait le moyen préféré de récupérer varchar pour conserver les caractères Unicode? Voici le petit extrait à faire pour expliquer facilement le problème.Comment conserver les caractères chinois/coréen récupérés à partir de la valeur varchar dans java

Result resultSet = statment.getResultSet(); 
while(resultSet.hasNext(){ 
String userName = commentRS.getString(3); 
} 

Répondre

0

Si vous pensez que quelque chose a été sali lors de la traduction de l'encodage de la CLOB de base de données à la chaîne de Java, vous pouvez essayer d'utiliser ce code pour éviter:

String userName = new String(commentRS.getBytes(3), "UTF-8"); 

L'idée est d'obtenir le flux pur d'octets de la base de données, puis créez une chaîne avec l'encodage souhaité.

+0

Je reçois NPE en utilisant getBytes() –

+0

J'ai un problème avec les données varchar. Je suis capable d'utiliser correctement les données CLOB –

+0

Désolé, je voulais dire varchar au lieu de CLOB. En ce qui concerne le problème, il est étrange que getBytes jette NPE. Peut-être que cette question est similaire à ce qui est décrit dans cette [question] (https://stackoverflow.com/questions/4168494/resultset-getstring-on-varchar2-column-returns-empty-string) Je ne suis pas très familier avec Base de données Oracle, mais autant que je me souvienne varchar est en fait la même chose que varchar2 là – siarheib