前回、木村さんにお世話になり、あとは皆さんのVote待ちです。
今度は、添付ファイル名の文字化けについてです。
ファイル名に日本語を使用すること自体反則かな、と思うのですが。
某MS社のOS全盛の現在、デフォルトのディレクトリ名すら日本語が使用されてい
る状態です。
一般のユーザに対し日本語のファイル名を使用するなといっても説得力に乏しい
と言わざるを得ません。
原因は当然jBossでは無く、JavaMailだと思っています。
RFC2231での縛りが有る限りまともに組めば当然文字化けするはずです。
もちろん、Seam側で逃げる方法は有るでしょうが、日本(非欧米)だけが使用すフ
レームワークでない以上、JavaMailが対応すれば対応できる問題にSeam単独で
対応することが正しいことなのでしょうか?
ただ、私が使用するマイナなMUAは勿論、OutLookも当然日本語名の添付ファイル
名に対応しています。商用コンテナも当然対応しているでしょう。
これらはみな、独自(といっても多分していることは衆知の事)の拡張を行ってい
るに過ぎないと思いますが。
jBossはこの場合どのような対応をするべきなのでしょうか。
というより、jBossユーザはどのような対応を望むべきなのでしょうか。
ソースをながめながら考え込んでしまいました。
_______________________________________________
Japan-jbug-seam mailing list
Japan-j...@lists.sourceforge.jp
http://lists.sourceforge.jp/mailman/listinfo/japan-jbug-seam
訂正します。
>
>原因は当然jBossでは無く、JavaMailだと思っています。
>RFC2231での縛りが有る限りまともに組めば当然文字化けするはずです。
JavaMailがRFC2231に準拠していない以上、まともに組めば当然文字化けするは
ずです。
従って、JavaMailを使用しているSeam上ではこれが正解だというエンコードもデ
コードも今現在では無いということになります。
でも、前回のメールでも書いた通り、何となくこれでいいのかなというやりかた
で、MUAや商用コンテナはその障害をすり抜けています。
赤信号をみんなで渡っているようで気持ち悪いことは限りないですが。
これが現実です。
今まで、私自身はjBossで仕事をしたことは無いですが、今後出来得れば、自信
をもって客先に進められるプラットフォームとなって欲しいと思っています。
linuxすら懐疑の目で見られた時代も有りました。
では、では。
At Sun, 08 Jul 2007 21:31:34 +0900,
岡崎 俊郎 <jf...@lime.ocn.ne.jp> wrote:
> >原因は当然jBossでは無く、JavaMailだと思っています。
> >RFC2231での縛りが有る限りまともに組めば当然文字化けするはずです。
>
> JavaMailがRFC2231に準拠していない以上、まともに組めば当然文字化けするは
> ずです。
JavaMailの詳細はきのしたさんが書いてますね。
http://www.sk-jp.com/book/javamail/contents/javamail_ja_prob.html
RFC2231というのが出ていたんですね。ただ、ほとんどのMUAではま
だ対応してないんじゃないかと思います。JavaMailでRFC2231をサポー
トしており、その形式で送ったとしても受信側で化けるのがオチな
気がします。少なくともMicrosoft Outlookは対応していないとの情
報がWeb上には転がってます。ファイル名のエンコードは自前で実装
するしかないんじゃないでしょうか。Seamでエンコードしたファイ
ル名を渡すことが不可能、ということならまたパッチを作る必要が
ありますね。
--
//Takayoshi Kimura <tki...@redhat.com>
At Sun, 08 Jul 2007 21:31:34 +0900,
岡崎 俊郎 <jf...@lime.ocn.ne.jp> wrote:
> >原因は当然jBossでは無く、JavaMailだと思っています。
> >RFC2231での縛りが有る限りまともに組めば当然文字化けするはずです。
>
> JavaMailがRFC2231に準拠していない以上、まともに組めば当然文字化けするは
> ずです。
JavaMail 1.4ではこの問題はFixedとなっているので、対応済みじゃ
ないでしょうか。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4107342
JBoss AS 4.0.5.GA以降はこのJavaMail 1.4が入ってます。
--
//Takayoshi Kimura <tki...@redhat.com>
木村さん情報有難うございました。
> JavaMailの詳細はきのしたさんが書いてますね。
木下氏の「JavaMail完全解説」は私も持っていて、ずいぶん遠い昔、tomcat
サーブレットにメールの発信機能を持たせるのに参考にさせて頂きました。
> JavaMail 1.4ではこの問題はFixedとなっているので、対応済みじゃ
> ないでしょうか。
これは気が付きませんでした。
てっきり、前回、苦しんだのと同じ理由だと思ってしまいました。
> RFC2231というのが出ていたんですね。ただ、ほとんどのMUAではま
> だ対応してないんじゃないかと思います。
この状況は現在も変わっていないということですね。
Outlookは使うなって言うのも無理が有るから。
デコード側(MUA)に合わせて、RFCとは関係無く送信側のエンコードを変更すると
いう作業を行わなければならないということですね。
UIAttachment.setFileNameもしくはUIAttachment.encodeEnd
を変更することになるのでしょうが。
いや、UIAttachment.getNameでエンコードする手も有りますね。
でも、今後を考えると盲腸のようなコード、どうやってパッチを作ればいいので
しょう?
>UIAttachment.setFileNameもしくはUIAttachment.encodeEnd
>を変更することになるのでしょうが。
UIAttachment.javaの113行目
attachment.setFileName(getName(ds.getName()));
↓
attachment.setFileName(MimeUtility.encodeText(getName(ds.getName()),
"ISO-2022-JP", "B"));
この変更でOutlookでも日本語ファイル名が読み取れました。
勿論、機種依存文字をどうするかという問題が残りますが。
さて、charset、encodingをどのように取得しましょうか。
attachmentタグにcharset、encoding属性でも追加しましょうか。
なにか間違っていそうな気がするな!