欧元符号在某些机器上出现乱码

时间:2015-08-09 12:00:12

标签: java spring encoding utf

我们有一个Web应用程序(Java spring mvc项目)。 我们的服务器通过REST API返回jsons。

这是我们的质量保证环境的回复示例:

{currency: "EURO", symbol: "€", multiplier: 1}

这是来自不同环境(Dev)的相同响应:

{currency: "EURO", symbol: "�", multiplier: 1}

为什么会出现这种情况的任何想法?

2 个答案:

答案 0 :(得分:1)

好的 - 所以我的问题是在ubuntu上运行的构建机器(Jenkins)。 构建机器编译和部署我们的应用程序的所有环境都存在问题。

我必须用

更改要编译的gradle任务
tasks.withType(JavaCompile) { options.encoding = 'Cp1252' }

(因为我们在windows env上开发,这是默认的。)

干杯

答案 1 :(得分:0)

这是因为您的浏览器在后台(在服务器上)完成所有工作后绘制了字体。这意味着您可以在某些时候对其进行正确编码,但是一旦浏览器获得它,就不再对其进行编码,并显示浏览器无法理解的字符。

您需要在浏览器端使用JavaScript再运行一次。使用正确的编码对字符串进行简单替换将修复它。

相关问题