0

想不通这个。当我的 tomcat 应用程序发送电子邮件(Javamail API)时,“$”被替换为“¤”......

仅在 Linux 上。在 Windows 上它工作正常。

我到处都有 UTF-8 和语言环境 EN - 在 Javamail 代码中,在每个页面上,在应用程序配置中。我会认为 $ 将是 ascii 足以没有字符集问题。

例如

Each    Price
¤99.97  ¤99.97
Subtotal:   ¤99.97
Shipping:   ¤10.00

任何人都可以建议在哪里看?我怀疑它不是字符集或语言环境......再说一次,它只是来自 Linux 服务器......

谢谢

4

2 回答 2

0

如果您在消息内容中发送一条带有文字“$”的简单消息,来自 Java String 对象,它仍然会失败吗?例如,msg.setText("test $1")。如果您使用 msg.writeTo(new FileOutputStream("msg.txt")),您会看到什么?

您使用的是什么版本的 JavaMail。某些版本的 Linux 包括 GNU 版本的 JavaMail,它有时会出现问题。

于 2013-02-14T03:35:59.727 回答
0

解决了!文字 $s 没问题。原来是formatNumber标签。

我已经设置了页面字符集...

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

但是忘记为 taglib 设置语言环境。

<fmt:setLocale value="en_US" scope="session"/>

<fmt:formatNumber value="${row.price}" type="currency"/>

谢谢你的帮助。

于 2013-02-14T14:02:03.907 回答