如何在我的Spring Boot应用程序中配置EC2以处理表情符号

问题描述 投票:0回答:1

我目前正在尝试在EC2实例上运行Telegram机器人。

但是问题是-替换了所有非英语符号。在屏幕截图上,您可以看到表情符号的替换方式(例如,在“设置”一词之前)或俄语单词完全被弄乱了。

Telegram screenshot

到目前为止我尝试过的:

  1. 使用参数运行java:
java -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US -jar
  1. 在application.properties中设置语言环境
spring.mandatory-file-encoding=UTF-8

spring.http.encoding.charset=UTF-8

spring.http.encoding.enabled=true
  1. 设置/ etc /环境的语言环境
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
LANG=en_US.utf-8
LC_ALL=en_US.utf-8

请注意:我的消息/按钮文本值存储在应用程序资源中的相应区域设置包中。考虑到该机器人仍然可以工作(即使混乱了,他也可以识别收到的消息的价值),我认为它与Java应用程序有关。

P.S。当我在本地运行时-效果很好。

任何帮助将不胜感激!

java spring-boot amazon-ec2 locale telegram-bot
1个回答
0
投票

经过大量的回答和尝试,这是我的解决方案:

由于我的文本值存储在.properties包中,Standard Java API is designed to use ISO 8859-1 encoding for properties files.

https://www.jetbrains.com/help/idea/properties-files.html#

因此,在执行“ mvn clean package”之前,我使用以下命令手动解码了属性文件:>

native2ascii-编码UTF-8src / main / resources / messages_en.propertiessrc / main / resources / messages_en.properties

希望有帮助。

如果有人有更好的解决方案,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.