提问人:Ptese 提问时间:6/14/2023 更新时间:6/14/2023 访问量:60
在 linux 服务器的外部 tomcat 服务器上部署 Spring Boot 时,英语以外的语言是错误格式
Language other than English is error format when deploying spring boot on an external tomcat server in linux server
问:
我正在 linux 服务器中的外部 tomcat 服务器上部署我的 spring boot 项目。我的代码中有一些字符串文本可以通过多种语言向用户发送 OTP SMS,但是当我发送英语以外的语言时,我得到的格式与预期不同。 例:
- 越南语错误:“OTP:518461 Hết hạn sau 60 giây。
- 越南人期望:“OTP:518461 Hết hạn sau 60 giây。
- 泰语错误:“OTP: 448762 ຠ໠າຠົດຓວລາ: 60 ວàº'ຠານ™—àºμ。
- 泰语期望:“OTP:448762 ກໍານົດດວລາ:60ວິນາທີ。
但是当我在Spring Boot中通过内部tomcat运行它时,我没有收到该错误。
我尝试了很多解决方案,例如将配置UTF-8添加到外部tomcat服务器的配置中。在外部 tomcat 服务器上部署该错误时,如何修复该错误?
答:
0赞
Soheil Babadi
6/14/2023
#1
您的 Tomcat 可能未配置为使用 UTF-8 编码,这会导致在以非英语语言发送 OTP 时出现问题。
我认为您可以尝试一些步骤来解决此问题:
- 将 Spring Boot 应用程序中的字符编码设置为 UTF-8
spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true
- 在服务器配置文件中检查外部 Tomcat 服务器.xml字符编码
连接器 URIEncoding=“UTF-8”
- 将以下行添加到您的 catalina.sh 或 catalina.bat
导出 JAVA_OPTS=“$JAVA_OPTS -Dfile.encoding=UTF-8”
评论
0赞
Ptese
7/4/2023
对不起,因为我直到今天才回复你的答案。感谢您的回答,我尝试了包括您的解决方案在内的许多解决方案,但仍然出错。最后,经过漫长的一天,我找到了解决方案,那就是:将此配置 UTF-8 添加到我的 pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
评论