2017-09-18 1 views
0

J'ai un fichier ja.json qui contient des paires de valeurs clés pour cadre de sélénium:lecture du texte japonais de JSON: mauvais caractères

"clé": [ "! 私 は あ な た を 愛 し て い ま す",

J'ai enregistré le fichier au format UTF-8. Mais quand j'essaie de lire les valeurs de json, je reçois la chaîne comme "?????"

J'utilise ci-dessous le code:

Object obj = parser.parse(new FileReader(filePath)); 
    JSONObject jsonObject = (JSONObject) obj; 
    String text= (String) jsonObject.get(key); 
    String expectedValue = new String(text.getBytes("UTF-8"),"UTF-8"); 

Que puis-je faire pour obtenir des caractères japonais à partir d'un fichier JSON (ou tout autre format si nécessaire) et envoyer?

+0

'FileReader' utilise un encodage de plate-forme par défaut qui n'est souvent pas UTF-8. Au lieu de cela, vous pouvez utiliser quelque chose comme 'new InputStreamReader (nouveau FileInputStream (filePath)," UTF-8 ")'. – Pshemo

Répondre

1

Vous devez lire le fichier avec le charset correct, par exemple:

Object obj = parser.parse(new InputStreamReader(
    new FileInputStream(filePath), StandardCharsets.UTF_8)); 

Le FileReader utilisera le codage de la plate-forme quelle qu'elle soit sur votre système.

Toute tentative de réparation du codage après la lecture du fichier avec un codage incorrect échouera. Donc, votre ligne

String expectedValue = new String(text.getBytes("UTF-8"),"UTF-8"); 

est inutile.

+0

Super !! Cela a fonctionné. Merci –