0

我只是在使用:

NumberFormat cfLocal = NumberFormat.getCurrencyInstance(Locale.JAPAN.toString());

它在大多数设备/浏览器/货币上都能正常工作,除了在 IE 和日元中我得到了一些额外的字符 - 可能是一个奇怪的编码被发送,或者浏览器特定的设置搞砸了 ¥ 符号的处理?

输出如下所示:

ï¿¥15,180

将不胜感激任何线索或提示。

编辑: 我正在使用 JSP 输出值。JSP 文件是用这个序言定义的:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
4

1 回答 1

1

我不是编码专家,但您的 XML 似乎说一件事,而您的内容类型说另一件事 - 尝试将两者都设置为 UTF-8。

如果您的数据来自应用程序外部(例如数据库、文件等),源的编码是什么?例如,MySQL 数据库可能指定了不同的字符集。

如果您使用的是 Apache 之类的 Web 服务器,是否会更改编码?例如,您可以使用 httpd.conf 指令来设置默认字符集:

AddDefaultCharset utf-8

值得检查浏览器中的 HTTP 标头以查看实际发送到浏览器的内容,然后从那里返回。

编辑

再想一想,我不确定 XML 编码是否一定是问题所在。最好先检查标题,然后将其与生成的 html 进行比较。

于 2012-10-31T02:33:03.260 回答