java - AWS Elastic Beanstalk 上 HTTP Post 对象的 UTF-8 编码问题

标签 java linux amazon-elastic-beanstalk

我使用 Linux 在 AWS EBS 中设置了一个新服务器,并将该服务器配置为 UTF-8,因为我使用了一些希伯来语文本。

该代码在 Windows 上运行,但当我迁移到 Linux 时,它停止运行了。 代码将 HTTP post 发送到另一台服务器并从中获取 JSON 对象并开始解析,所有希伯来语文本都是这样的:קבוצ×

  1. 我尝试添加到 AWS 软件配置:JAVA_TOOL_OPTIONS -Dfile.encoding=UTF8
  2. 我尝试将 JAVA_OPTIONS="-Dfile.encoding=UTF-8"添加到 tomcat8.conf 文件。 (同样尝试使用 JAVA_OPTS)。
  3. 我也尝试通过编码添加 catalina 选项。

    HttpPost 请求 = new HttpPost(URL); //创建 JSON 并设置 API Token JSONObject SendJson = new JSONObject(); SendJson.put(字段, 键); StringEntity 参数 =new StringEntity(SendJson.toString()); request.setEntity(参数); //设置标题类型 request.addHeader("内容类型", "application/json;charset=UTF-8"); request.addHeader("接受编码", "UTF-8"); //执行并等待响应 HttpResponse httpResponse = httpClient.execute(request);

        HttpEntity resEntity =   httpResponse.getEntity();
        // cast InputStream to String for JSON conversion
        BufferedReader reader = new BufferedReader(new InputStreamReader( resEntity.getContent()));
        //String strInputStream = EntityUtils.toString(resEntity,"UTF-8");
        String strInputStream = reader.readLine();
    
        //debug
        System.out.println("David Encoding problem");
        System.out.println(Charset.defaultCharset().name());
        System.out.println(strInputStream);
        JSONObject answerObj = new JSONObject(strInputStream);
    

Charset.defaultCharset().name() - 输出 UTF-8

我得到没有希伯来语文本的 JSON :/

部分 JSON 例如: {"item_group_id":1,"item_group_name":"קבוצה×","picture_link":""},

谢谢, 大卫

最佳答案

我修好了。 我将区域设置更改为 he_IL 和 he_IL.UTF8,然后重新启动服务器并且它工作了。

谢谢!

关于java - AWS Elastic Beanstalk 上 HTTP Post 对象的 UTF-8 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55431203/

相关文章:

java - 浏览器集成ssl证书

java - 广度优先搜索

linux - 避免linux + QT中的屏幕撕裂

linux - 从涉及输入和输出文件的不同工作目录在 linux 中运行程序

php - 如何以静默模式执行脚本以摆脱浏览器挂起

ruby-on-rails - 在Rails 6上部署Ruby-AWS Elastic Beanstalk-Docker:ArgumentError:缺少 `secret_key_base`

java - Spring Webflux 响应式(Reactive) Mongo 批量操作 (Java)

处理大量有状态事件的 Java 最佳实践

amazon-web-services - Elastic Beanstalk 环境因以下有关 RDS 的错误消息而被阻止

php - AWS Elastic Beanstalk - 如何在同一个 ec2 实例中运行 php 和 nodejs