0

これを理解することはできません。Tomcat アプリがメール (Javamail API) を送信すると、「$」が「¤」に置き換えられます...

Linux のみ。Windowsでは問題なく動作します。

Javamailコード、すべてのページ、アプリ構成など、いたるところにUTF-8とロケールENがあります。$ は、文字セットの問題が発生しないように十分な 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 の一部のバージョンには、JavaMail の GNU バージョンが含まれており、問題が発生することがあります。

于 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 に答える