Java 一些机器上的欧元符号是乱码
我们有一个web应用程序(JavaSpringMVC项目)。 我们的服务器通过RESTAPI返回JSON 以下是我们QA环境的响应示例:Java 一些机器上的欧元符号是乱码,java,spring,encoding,utf,Java,Spring,Encoding,Utf,我们有一个web应用程序(JavaSpringMVC项目)。 我们的服务器通过RESTAPI返回JSON 以下是我们QA环境的响应示例: {currency: "EURO", symbol: "€", multiplier: 1} 以下是来自不同环境(开发人员)的相同响应: 知道为什么会发生这种情况吗?这是因为在后台(在服务器上)对字体做了所有工作之后,浏览器正在绘制字体。这意味着您可以在某个时候对其进行正确编码,但一旦浏览器获得该编码,它将不再编码,并显示浏览器无法理解的字符 您需要在浏览器
{currency: "EURO", symbol: "€", multiplier: 1}
以下是来自不同环境(开发人员)的相同响应:
知道为什么会发生这种情况吗?这是因为在后台(在服务器上)对字体做了所有工作之后,浏览器正在绘制字体。这意味着您可以在某个时候对其进行正确编码,但一旦浏览器获得该编码,它将不再编码,并显示浏览器无法理解的字符
您需要在浏览器端使用JavaScript再运行一次。用正确的编码对字符串进行简单的替换将修复它。好的-所以我的问题是ubuntu上运行的构建机器(Jenkins)。 构建机器编译并部署我们的应用程序的所有环境都存在问题 我不得不更改要编译的gradle任务
tasks.withType(JavaCompile) { options.encoding = 'Cp1252' }
(因为我们是在windows环境上开发的,这是默认设置)
Cheers另一种选择是使用“EUR”,这是欧元的标准缩写,就像“USD”是美元的标准缩写一样。服务器是否可能返回它而不乱码?就像在env#1中一样?您必须查看返回的确切字符串。如果你使用的是完全相同的浏览器,但得到的结果却不同,那真的很奇怪。
tasks.withType(JavaCompile) { options.encoding = 'Cp1252' }