在我的网络应用程序中,欧元(€)符号正在转换为问号(?)。它建立在Java之上。代码很好但是在WAS 6.0上部署EAR时有时它工作正常,但有时它将€转换为?。
这与ASCII转换有关吗?如何解决这个问题?
提前致谢!
答案 0 :(得分:4)
现在可以使用€
或(u-escaped)"\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中复制。
答案 1 :(得分:0)
你应该html-escape特殊字符。例如:
€ = €
这样你就可以在你的HTML中使用简单的ascii,而不必担心编码。