Mozilla 翻訳
Mozilla Japan 翻訳部門では mozilla.org 全体の日本語化を目指して活動していました。
このサイトは 2022 年 1 月に終了しました。
Mozilla Japan コミュニティポータル
から関連サイトをご利用ください。
よくある質問
検索
登録ユーザ一覧
グループ
登録
ユーザ設定
ログインして PM を確認
ログイン
AMOのユーザー登録結果確認メールのタイトル文字化け
Mozilla 翻訳 フォーラム一覧
->
フリートーク
前のトピックを表示
::
次のトピックを表示
著者
メッセージ
masa
登録日: 2007年9月 04日
記事: 16
件名:
AMOのユーザー登録結果確認メールのタイトル文字化け
投稿時間: 2008年1月11日(金) 10:20
さきほどa.m.oの日本語版ページで gmail のアドレスでユーザー登録したら、
登録確認メールのタイトルが、
Firefox Add-ons へご登録いただきあ��がとうございます
になっていて、メールヘッダを確認したら
Subject: =?UTF-8?B?RmlyZWZveCBBZGQtb25zIOOBuOOBlOeZu+mMsuOBhOOBn+OBoOOBjeOBguOC?= =?UTF-8?B?iuOBjOOBqOOBhuOBlOOBluOBhOOBvuOBmQ==?=
となっていましたが、これはメールヘッダのエンコード/デコードのどちらが悪いのでしょうか?
濱崎
登録日: 2004年1月 27日
記事: 296
所在地: 静岡県
件名:
Re: AMOのユーザー登録結果確認メールのタイトル文字化け
投稿時間: 2008年1月12日(土) 12:19
符号化そのものはbase64にきちんと従っているようですから、文字化けの原因はデコード側にあると思います。
区切り(2番目の =?UTF-8?B )で文字化けしています。
base64 の書式が判る人は、簡単に確かめることができます。
区切りを超えて 4文字ずつ移し、手元の MUA で見てみてください。文字化けする場所が1文字ずつ移っていきます。
きっとデコードの過程で区切りに余計なものを入れたか削ったかしたのでしょう。
改行と空白は無視して素直につなげればいいんですけどね。
このあたりの実装をどうするかは MUA の作者も苦労している部分らしいです。
MIME の規定違反をする MUA (Outlook Express とか)が普及したことで、間違った規格が世に広まってしまったせいだとか。
もし、引用が
改行も含めて
正確なら、エンコード側にも問題があります。
ヘッダの MIME 変換を規定している
RFC2047
、
日本語訳の例
をちょっと読んでみたところ、
行の長さにこういう規定があります。
Quote:
While there is no limit to the length of a multiple-line header
field, each line of a header field that contains one or more
'encoded-word's is limited to 76 characters.
ですから、この Subject: 行は 76文字に収めないといけません。しかし、1行目が80文字を超えています。
何文字か区切りの後ろに移せば規格を守ることができます。
ただ、この長さ規定違反が文字化けに影響しているわけではなさそうです。
[test user]
ゲスト
件名:
投稿時間: 2008年1月12日(土) 16:35
multi-byte utf-8のバイト列の途中でぶった切っちゃぁいけません。。
濱崎
登録日: 2004年1月 27日
記事: 296
所在地: 静岡県
件名:
言われてみれば その通り
投稿時間: 2008年1月12日(土) 18:51
そうですね。
=?utf-8?b 〜 ?= までのひとまとまりが それぞれ独立して読める形にデコードできないといけませんよね。(☆)
# 理論的には、全部Base64デコードしたビット列をつなぎ合わせて、
# その後で頭から UTF-8 として解読してもいいわけですが、
# Subject: 全体の長さには制限がないため(何行になってもいい)、あまり賢くないやりかたです。
以下、正しいエンコーディングの例です。
76文字制限も考慮して「た」の前で分割した場合です。
Quote:
Subject: =?utf-8?b?RmlyZWZveCBBZGQtb25zIOOBuOOBlOeZu+mMsuOBhA==?=
=?utf-8?b?44Gf44Gg44GN44GC44KK44GM44Go44GG44GU44GW44GE44G+44GZIA==?=
☆という条件も考慮するなら、エンコーディングする側は文字コード──この場合は UTF-8 ──を考慮してビット列を文字の境界で分割し、それぞれを符号化する必要があります。
masa
登録日: 2007年9月 04日
記事: 16
件名:
AMOのバックエンドのバグ?
投稿時間: 2008年1月15日(火) 09:35
AMOのバックエンドのバグという判断でいいのでしょうか?
# bugzillaに投げるべき?
濱崎
登録日: 2004年1月 27日
記事: 296
所在地: 静岡県
件名:
Re: AMOのバックエンドのバグ?
投稿時間: 2008年1月15日(火) 11:19
bugzillaに投げてもいいと思います。整理すると問題点は2つで、
エンコード後の Subject: 行の1行目が76文字を越えていること
行区切りが UTF-8 の文字境界とずれていること
1. はRFC2047 違反です。
2. については、対応しているメーラがあるかもしれないので(★)AMOのバックエンドのバグとは言い切れません。
RFC2047 にも、文字境界で切らなければいけないという記述はありませんから。
対応してもらえるかどうかはまた別の話ですが、ASCII文字圏では起きない事例でしょうから
報告しておくのはいいんじゃないでしょうか。
Thunderbird で読んでも文字化けするということなら対応してもらえるかもしれませんね。
★この前の投稿で、
濱崎 wrote:
ビット列をつなぎ合わせて、その後で頭から UTF-8 として解読…
と書きましたが、考え直してみると
余りだけ取っておいて後からくるビット列につなげればいいので
Code:
○○○○●
↑ ↑余りビット列(これを次の行の頭とつなげて UTF-8 として解読する)
↑
これらは行の中で解読できるので片付いてしまう。
Subject 全体が長くても必要な記憶領域の量が爆発することはありません。
ちょっと実装の手間が増えるので、そこまで対応している MUA があるかな〜?ということです。
言を左右していて済みません。
masa
登録日: 2007年9月 04日
記事: 16
件名:
Bugzilla登録
投稿時間: 2008年1月15日(火) 17:12
https://bugzilla.mozilla.org/show_bug.cgi?id=412409
で登録しました。
あ
ゲスト
件名:
Re: AMOのバックエンドのバグ?
投稿時間: 2008年1月15日(火) 20:38
濱崎 wrote:
2. については、対応しているメーラがあるかもしれないので(★)AMOのバックエンドのバグとは言い切れません。
RFC2047 にも、文字境界で切らなければいけないという記述はありませんから。
記述がありますので、バグと言って良いと思います。
RFC2047 wrote:
Each 'encoded-word' MUST represent an integral number of characters.
A multi-octet character may not be split across adjacent 'encoded-
word's.
濱崎
登録日: 2004年1月 27日
記事: 296
所在地: 静岡県
件名:
Re: AMOのバックエンドのバグ?
投稿時間: 2008年1月16日(水) 23:47
うわっ、そのものずばりですね。あ さん、ありがとうございます。
boundary (=境界)で探して引っかからなかったので、ないものと思ってしまいました。
あ さんが引用してくれた記述は、
RFC 2047
http://tools.ietf.org/html/rfc2047
5. Use of encoded-words in message headers
の (3)の中、後ろから 3つめのパラグラフの中にあります。
masa
登録日: 2007年9月 04日
記事: 16
件名:
PHPMailerの問題らしいです
投稿時間: 2008年5月08日(木) 08:50
どうやらPHPMailerのバグっぽいです。
XOOPS(メール送信のバックエンドがPHPMailerです)のフォーラムでも同様の
不具合と思われる現象が報告されています。
http://xoopscube.jp/modules/newbb/viewtopic.php?topic_id=6940&forum=11&post_id=35435
masa
登録日: 2007年9月 04日
記事: 16
件名:
修正されました。
投稿時間: 2008年5月14日(水) 13:20
PHPMailerでパッチが既にあったので、それを取り入れる形で修正されました。
ご協力いただいた皆さんに感謝します
指定期間中に書かれた記事を表示:
全てのトピック
1日以内
1週間以内
2週間以内
1ヶ月以内
3ヶ月以内
6ヶ月以内
1年以内
古い記事から表示
新しい記事から表示
Mozilla 翻訳 フォーラム一覧
->
フリートーク
All times are GMT +9:00
Page
1
of
1
別のフォーラムに移る:
フォーラムを選んでください
Mozilla 関連翻訳(アーカイブ)
----------------
Mozilla サポート (SUMO)
Mozilla Developer Network
その他 Mozilla 関連翻訳
雑談余談(アーカイブ)
----------------
フリートーク
テスト
Mozilla Japan 翻訳部門について(アーカイブ)
----------------
翻訳部門の活動
フォーラム運営・トラブル報告
mozilla.org 日本語版 (アーカイブ)
----------------
mozilla.org 予約宣言
mozilla.org 草稿公開
mozilla.org 完成/改訂稿公開
mozilla.org リクエスト
mozilla.org 日本語版について
アーカイブ
----------------
XulPlanet-JP (休止)
訳語決定会
新規トピックを投稿
できます
既存トピックに返信
できます
自分の記事を編集
できません
自分の記事を削除
できません
投票に参加
できません
Powered by
phpBB
© 2001, 2006 phpBB Group (customized by dynamis)