Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导模块bean返回编码不正确的字符串_Java_Spring_Spring Boot_Amazon S3 - Fatal编程技术网

Java Spring引导模块bean返回编码不正确的字符串

Java Spring引导模块bean返回编码不正确的字符串,java,spring,spring-boot,amazon-s3,Java,Spring,Spring Boot,Amazon S3,我是一个新手 我有一个spring独立应用程序(MyModule),它作为一个模块包含在另一个独立应用程序(MyMainApp)中,使用以下注释 @SpringBootApplication(scanBasePackageClasses = {MyModule.class....}} 我在MyModule应用程序中有一个bean。这个bean从AmazonS3读取一个包含一些德语字符的字符串的文件,并将其返回给MyMainApp中的端点。(我知道这可能是一个服务,而不是一个bean)。此端点使

我是一个新手

我有一个spring独立应用程序(MyModule),它作为一个模块包含在另一个独立应用程序(MyMainApp)中,使用以下注释

@SpringBootApplication(scanBasePackageClasses = {MyModule.class....}}
我在MyModule应用程序中有一个bean。这个bean从AmazonS3读取一个包含一些德语字符的字符串的文件,并将其返回给MyMainApp中的端点。(我知道这可能是一个服务,而不是一个bean)。此端点使用注释进行注释-

@GetMapping(value = "/{id}", produces =  "application/json charset=utf-8")
问题是:

当我在MyModule应用程序中运行Spring测试时,我得到了正确编码的(UTF-8)字符串。

(我还尝试在MyModule应用程序中创建一个类似的端点,它返回正确的结果。)

当我从MyMainApp调用这个bean方法时,我得到了错误编码的字符


我读过关于字符编码过滤器的文章。这是解决此问题的正确方法吗?

使用以下参数运行应用程序:

mvn spring-boot:run -Drun.jvmArguments="-Dfile.encoding=UTF-8"
或者您可以尝试在jvm级别设置:

添加到配置文件(对于application/var/app/app.jar,它将是/var/app/app.conf)的下一行:

export LANG='en_US.UTF-8'

可能只是输入错误,您可以尝试:

@GetMapping(path=“/{id}”,products=“application/json;charset=UTF-8”)

当我-

  • 使Intellij的缓存无效
  • 升级到spring 2.3.0
  • 增加
  • @GetMapping(path=“/{id}”)生成= “应用程序/json;字符集=UTF-8”)


    我在本地运行这个。我尝试设置“-Drun.jvmArguments=“-Dfile.encoding=UTF-8“在Intellij的VM选项中。还尝试设置环境变量export LANG='en_US.UTF-8'。这两个都不起作用。将
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    spring.http.encoding.force=true
    添加到
    应用程序.properties
    中如何?我想到的另一件事是,您如何测试它?浏览器还是邮递员?可能您的浏览器编码未设置为UTF-8从s3读取的代码是什么?还可以将System.out.println放在控制器内从S3读取的值上吗?