在我的网络应用程序中,欧元 (€) 符号正在转换为问号 (?)。它是基于 Java 构建的。代码很好,但是当在 WAS 6.0 上部署 EAR 时,有时它可以正常工作,但有时会将 € 转换为 ?。
这与 ASCII 转换有关吗?如何解决这个问题?
提前致谢!
最佳答案
现在可以使用€
或(u转义)"\u20AC"
。
网页不得采用 ISO-8859-1 编码,而应采用 UTF-8 编码。让我们假设一下。
在java源文本中用作€
,编辑器编码和javac编译器编码必须是UTF-8。
在JSP中使用编码也必须是UTF-8,但现在jspc编译器运行在最终服务器上,也必须使用UTF-8。
仍然是编码也必须适合的数据库。
存在 UTF-8 的替代编码,但存在问题。 ISO-8859-15 左右具有欧元符号,但不具有 ISO-8859-1 的所有字符,因为所有浏览器(但不是 java)都将 ISO-8859-1 (Latin-1) 解释为 Windows-1252 (Windows Latin-1) 有更多字符,如逗号、引号和特殊连字符。自 HTML 5 起,这已成为必需的标准。
Windows-1252 是唯一合理的编码替代方案,但仅涵盖几种欧洲语言。执行时看到的代码是 0x80 (128)
byte[] cp1252 = "\u20AC".getBytes("Windows-1252");
// { -128 }
错误的根源可能是在 Windows 中进行复制。
关于java - 欧元符号的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25897932/