Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一些机器上的欧元符号是乱码_Java_Spring_Encoding_Utf - Fatal编程技术网

Java 一些机器上的欧元符号是乱码

Java 一些机器上的欧元符号是乱码,java,spring,encoding,utf,Java,Spring,Encoding,Utf,我们有一个web应用程序(JavaSpringMVC项目)。 我们的服务器通过RESTAPI返回JSON 以下是我们QA环境的响应示例: {currency: "EURO", symbol: "€", multiplier: 1} 以下是来自不同环境(开发人员)的相同响应: 知道为什么会发生这种情况吗?这是因为在后台(在服务器上)对字体做了所有工作之后,浏览器正在绘制字体。这意味着您可以在某个时候对其进行正确编码,但一旦浏览器获得该编码,它将不再编码,并显示浏览器无法理解的字符 您需要在浏览器

我们有一个web应用程序(JavaSpringMVC项目)。 我们的服务器通过RESTAPI返回JSON

以下是我们QA环境的响应示例:

{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' }