当前位置: 首页 > 知识库问答 >
问题:

通用域名格式。谷歌。密码gson无法解析泰米尔语结果

皇甫才良
2023-03-14

所以,我试图从中获取JSON结果https://api-thirukkural.vercel.app/api?num=1139使用Java Telegram Bot Api并将其发送到Telegram。我使用com.google.密码用于解析JSON的gson依赖项。

API的预期结果:

{"number":1139,"sect_tam":"காமத்துப்பால்","chapgrp_tam":"களவியல்","chap_tam":"நாணுத் துறவுரைத்தல்","line1":"அறிகிலார் எல்லாரும் என்றேஎன் காமம்","line2":"மறுகின் மறுகும் மருண்டு.","tam_exp":"என்னைத் தவிர யாரும் அறியவில்லை என்பதற்காக என் காதல் தெருவில் பரவி மயங்கித் திரிகின்றது போலும்!","sect_eng":"Love","chapgrp_eng":"The Pre-marital love","chap_eng":"Declaration of Love's special Excellence","eng":"My perplexed love roves public street Believing that none knows its secret","eng_exp":"And thus, in public ways, perturbed will rove"}

下面是我的一段java代码:

  String results = "";
        Random random = new Random();
        SendMessage message = new SendMessage();
        String apiUrl = "https://api-thirukkural.vercel.app/api?num=" + random.nextInt(1329 + 1);
        try {
            URL url = new URL(apiUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            Scanner sc = new Scanner(url.openStream());
            while (sc.hasNext()) {
                results += sc.nextLine();
            }
            sc.close();
            JSONArray jsonArray = new JSONArray("[" + results + "]");
            JSONObject object = jsonArray.getJSONObject(0);
            message.setChatId(update.getMessage().getChatId().toString());
            message.setText("Number: " + object.getInt("number") + "\n\n" + object.getString("line1") + "\n"
                    + object.getString("line2") + "\n\n" + object.getString("tam_exp") + "\n\n" + object.getString("eng_exp"));
            conn.disconnect();
            execute(message);
        } catch (Exception e) {
            e.printStackTrace();
        }

电报的结果:

Number: 1139

அறிகிலார� எல�லார�ம� என�றேஎன� காமம�
மற�கின� மற�க�ம� மர�ண�ட�.

என�னைத� தவிர யார�ம� அறியவில�லை என�பதற�காக என� காதல� தெர�வில� பரவி மயங�கித� திரிகின�றத� போல�ம�!

And thus, in public ways, perturbed will rove

这是gson依赖中的问题吗?谁能帮我修一下吗?谢谢

共有1个答案

符正信
2023-03-14

您需要指定扫描仪上的字符集。这可能就是问题所在。

例子:

new Scanner(url.openStream(), StandardCharsets.UTF_8.name());

你应该使用合适的Charset。

 类似资料:
  • 我是android和admob的新手。我下载了sdk...导入了play服务库,并完成了在sdk文档上编写的所有内容。但是当我添加xml片段时: 我在错误日志中收到以下消息 通用域名格式。谷歌。Androidgms。ads.AdView未能实例化。我知道之前有人问过这个问题,但没有一个对我有用。上述错误的错误日志: 另外,我已经从开普勒切换到eclipse luna,这是导致问题的原因吗?我的xm

  • 在phpmyadmin中,我将字符集设置为utf-8,泰米尔文字看起来很棒 但在导出到sql文件后,看起来: 问题出在哪里?

  • 我正在尝试使用改装将图像上载到本地服务器。下面是我的php代码。 但是我得到了这样一个错误:com.google.gson.stream.MalformedJsonException使用JsonReader.setLenient(true)在第1行第1列路径$处接受格式错误的JSON。 然后,我在初始化改装的类中添加了以下代码。 现在我得到以下错误:com.google.gson.JsonSynt

  • 我的应用程序运行良好,谷歌地图也正常工作。我从com更改了包名。实例hellworld,这样我就可以把它放在我想要的游戏存储中,同时更新了清单,相应地更改了API键。 我的应用程序中的所有其他活动都运行良好。但是当我打开包含地图的活动时,它会抛出此错误。

  • 这不是一个重复的问题,请不要标记为重复。这个Json可以用GSON库解析吗?

  • 我们正在尝试使用EclipseIDE中的Protege为我们在泰米尔创建的OWL本体执行SparQL查询。代码运行良好,但结果似乎没有出现在泰米尔语中。下面是代码和输出。 输出: -------------------------------------------------------------------------------------- -----------------------