【发布时间】:2017-11-10 19:23:48
【问题描述】:
我在 JSON 响应中返回本地化错误消息并将其打印到日志中。当我这样做时,两者都显示出奇怪的、混乱的角色。如何对消息进行编码以正确显示非英文字符?
存储在"messages_fr.properties"中的消息:
exceptions.generalMessage=Un problème est survenu lors de la gestion de votre demande.
它在 JSON 响应中的显示方式:
"message": "Un problème est survenu lors de la gestion de votre demande."
在堆栈跟踪中显示与上面相同。
【问题讨论】:
-
您是否尝试过将该字符的实际 UTF-8 表示形式存储在
messages_fr.properties中?它适用于我的西班牙语消息;比如:Un problema de gestión...存储为Un problema de gesti\u00f3n。 -
@ɐuıɥɔɐɯ 如何以 UTF-8 存储它?
-
结果如下:
Un problxC3xA8me est survenu lors de la gestion de votre demande.。我将它存储在 UTF-8 中:Un probl\xC3\xA8me est survenu lors de la gestion de votre demande. -
不...你的应该是这样的:
Un probl\u00E8me est survenu...;还要确保您确实将该文件存储在 UTF-8 中,Spring 具有该设置(在application.properties或类似中):spring.messages.encoding = UTF-8...并且(也许)您正在返回响应,正如@Optional 所说,在UTF-8。对我来说,前两个就足够了,因为响应在 Nginx 下游发生了变化。
标签: java json spring spring-boot localization