从json读日文:错误的字符

时间:2017-09-18 14:24:15

标签: java json selenium utf-8

我有一个ja.json文件,其中包含selenium framework的键值对:

“key”:[“私はあなたを爱しています!”,

我已将文件保存为UTF-8格式。但是当我尝试从json读取值时,我得到的字符串为“?????”

我正在使用以下代码:

  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");

我还可以做些什么来从JSON文件(或任何其他格式,如果需要)获取日文字符并发送?

1 个答案:

答案 0 :(得分:1)

您需要使用正确的字符集读取文件,例如:

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

FileReader将使用平台编码系统上的任何内容。

在使用错误的编码读取文件后,任何修复编码的尝试都将失败。你的行

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

没用。