java - 从 json : wrong characters 读取日文文本

标签 java json selenium utf-8

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

"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 文件(或任何其他格式,如果需要)获取日语字符并发送?

最佳答案

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

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

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

在读取编码错误的文件后任何修复编码的尝试都将失败。所以你的路线

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

没用。

关于java - 从 json : wrong characters 读取日文文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46281742/

相关文章:

Python + Selenium : I can't get print text from div

java - Camel POST RestService 接受 JSONArray : annotations and parsing errors

java - 是否可以在 Spring/REST 中定义具有相同映射但不同参数的多个方法?

java - 是否有 jarsigner 的纯 java 或独立可部署实现?

python - 无法单击并按住 Selenium 中的元素

python - 如何在 python selenium 中按类名及其文本定位元素

java - 如何将 mp3/mp4 文件从 Raw 文件夹发送到 Android 上的服务器?

json - 如何在Flutter中跳过Json映射中的特定键

java - 反序列化 POJO 列表,而不是一次反序列化单个 POJO

json - Postgres - 选择大型 jsonb 列的性能