0xC2A0対策No.37820
hajimet さん 10/02/10 16:00
 
秀丸メールいつも便利に使わせていただいています。
さて、標記の件
最近メールの本文(特に「署名」にあたる部分)に
半角スペースとして0xC2A0が混入しているメールを
受け取る頻度が急激に増えました。
返信するたびにutfに切り替えるかと訊かれます。
出現頻度が高くて、かつ支障のないパタンについては、
自動的に変換(リプレース)する処理を加えたいと
思うのですが、
なにかその点でリーズナブルな対策の考え方について、
アドバイスいただけたらと思い書き込んでいます。
よろしくご指導ください。

[ ]
RE:37820 0xC2A0対策No.37821
秀まるお2 さん 10/02/10 16:40
 
 ユニコードの文字コードで0xC2A0というのは何か別の文字だと思うんですが、
ユニコードの空白を「unicode space」で検索したら、wikipediaの情報が出てき
ました。それによると、

   1. Space (U+0020)
   2. En Quad (U+2000)
   3. Em Quad (U+2001)
   4. En Space (U+2002)
   5. Em Space (U+2003)
   6. Three-Per-Em Space (U+2004)
   7. Four-Per-Em Space (U+2005)
   8. Six-Per-Em Space (U+2006)
   9. Figure Space (U+2007)
  10. Punctuation Space (U+2008)
  11. Thin Space (U+2009)
  12. Hair Space (U+200A)
  13. Mathematical Space (U+205F)

 というのがあるそうですが、これらの文字のどれかってことでしょうか。

 秀丸メール上で調べるとしたら、そのメールをエディタで開いて、問題の文字
の上で「その他・コマンド一覧...」を実行して、「その他・文字コード表示」
とすると出てきます。

---------------------------------------------------
 上記の文字のどれかだとしたら、とりあえず秀丸メール側で勝手にそれを、普
通の半角空白に変換してしまう手があります。

 何かご意見ありましたらお願いします。
 (僕もあまり詳しくないので)

[ ]
RE:37821 0xC2A0対策No.37822
Iranoan さん 10/02/10 18:26
 
 秀まるおさん今日は、Iranoan です。
>  上記の文字のどれかだとしたら、とりあえず秀丸メール側で勝手にそれを、普
> 通の半角空白に変換してしまう手があります。
>
>  何かご意見ありましたらお願いします。
 Unicode でそのまま送りたい人もいると思うので、無条件に比較してしまう
のはまずいと思います。

 オプションなら良いと思いますが、変換/無変換どちらをデフォルトにする
かは悩ましいかも。

 あとhajimetさんのご希望によっても異なりますが、末尾のマクロを「送信
用のエディタ起動時」の「自動起動」マクロとしてしての使用で済むのであれ
ば、それはそれで...。

 P.S 0xC2A0 は HTML の   に当たるようです。0x00A0 との違いが???
//-------------------------------------------------------------------------
replaceallfast "[\u2000-\u200B\u205F\u00A0\u202F\uC2A0]", " ", regular;

[ ]
RE:37822 0xC2A0対策No.37847
hajimet さん 10/02/15 12:46
 
コメントありがとうございます。
なるほど、
エディタ起動時にマクロで自動置換する手があるのですね。

送信時かなりの頻度で警告メッセージが出て気になっていました。
他のユーザの方はあまり気になっていないのでしょうか。

支障がない、というのは、世間的に置換してもOKだろうという
ことを想定しています。

置換という手を考えついたのは、
私が経験した殆どの事例で、 を使っている人は、
意図的に使っているというよりも、
メーラなりの仕様で結果的にそうなっているだけで、
たぶん、普通のスペースを使っているつもりなんだと思われる
という事情があります。
ので、今のところ私がやりとりしている相手については、
置換してしまって大丈夫のようですが、この先、意図的に
0xC2A0等のコードを使ってメールを送ってくる人がないとも限らない。
また、おそらくメーラの仕様を策定した人は、
署名欄のデザイン性を考慮して、引用時、署名欄が
改行等で崩れることを避けるという考え方をとっているのだろうと
推測しているところです。

だとしたら、むしろ、警告メッセージを出さずに、
ユニコードで返信できるようにする方が良いのでしょうか。
もちろん、毎回警告メッセージを確認して送信するのが
もっとも好ましいのでしょうけど。
その原因が単なるスペースコードの問題なのか、
それ以外の変なコードが混入しているのか
警告メッセージだけだとわからないので、ちょっと
悩ましいのです。

一方で、
「多国語混在でないユニコードのメールを特定文字コードに変換する」
のオプションの魅力も捨てがたい。
ということで、どうしたものでしょうか。

具体的な操作の話ではなく、考え方の話になってしまいました。
申し訳ありません。

[ ]
RE:37847 0xC2A0対策No.37848
秀まるお2 さん 10/02/15 13:13
 
 「 」入りのHTMLメールをOutlook Expressで送信するテストをした限り
では、その部分は普通の半角空白に変換されてるだけでした。

 「 」が0xC2A0になるというのは、果たして何というメールソフトでし
ょ?。差し支えなければ教えて欲しいです。

 (問題のメールのX-Mailer:ヘッダを見るとソフト名が分かると思います)

 秀丸メールの方で、その文字を勝手に普通の半角空白に変換してしまうのもあ
りかと思います。

[ ]
RE:37848 0xC2A0対策No.37849
小電流 さん 10/02/15 13:31
 
ググったところこのようなページがヒットしました。ご報告まで。
http://groups.google.co.jp/group/delphicbuilder-ml-archive/msg/06f7e2370859921b

[ ]
RE:37849 0xC2A0対策No.37850
秀まるお2 さん 10/02/15 14:23
 
 ユニコードでの0xC2A0の文字自体は空白ではなくて何かハングル風の文字で、
nbspを表す文字ということでは無いはずです。

 なぜこのように変換されてしまうのやら?

 Delphi関係でヒットするということは、何かDelphiの中でnbspがC2A0に変換さ
れるような処理があって、それを使ったメールソフト(Delphiで書かれたメール
ソフト?)が、C2A0の文字を生成して送ってる、ということなんですかね。

[ ]
RE:37850 0xC2A0対策No.37853
Kengo さん 10/02/15 14:53
 
横から失礼します。

>  ユニコードでの0xC2A0の文字自体は空白ではなくて何かハングル風の文字で、
> nbspを表す文字ということでは無いはずです。

問題となっている文字は、秀丸エディタの「文字コード表示」で見た時に

文字サンプル:
Shit-JIS:       ----
EUC:            ----
JIS:            ----
Unicode:        0x00A0
Unicode(UTF-8): 0xC2A0

と表示される文字ではないでしょうか?
# メール関連では記憶に無いですが、Webからコピペしてテキストファイルに
# 保存しようとした時に「文字コード変換できない文字が含まれています」と
# メッセージボックスが出て見つけることがあります。

[ ]
RE:37853 0xC2A0対策No.37854
秀まるお2 さん 10/02/15 15:50
 
 状況理解できました。完全に勘違いしてました。

 つまりユニコードでの0xA0の文字ということで…

 0xA0の文字は普通に半角空白に変換してしまっても何も問題ないと思います。

 とりあえず、返信メールを送る時にユニコードに変換するかどうかの問い合わ
せが出るのが問題になってるだけなので、0xA0の文字が入っているだけではその
警告は出ないように(半角空白に変換するように)してしまいます。

 (次のβ版で)

[ ]
RE:37854 0xC2A0対策No.37859
hajimet さん 10/02/16 03:10
 
確かに話題にしていたのは、
utf-16では0x00A0とされる文字コードで
utf-8で0xC2A0とされる文字コードです。
utf-8で示すのは一般的ではなかったのでしょうか、
混乱させて申し訳ありません。さて、
既に話は収束しているようですが、一応情報まで。
最近では、Gmailが半角英数文字の前のスペースにその文字を
使うことが多いようです(引用の中の処理で使うみたいです)。
過去のメールをサーチしてみたところ、
User-Agent: Microsoft-Entourage/10.1.1.2418
X-Mailer: Active! mail 2003
X-Google-Sender-Auth: ********
というヘッダをもつメールで確認できました。
MacOS版やWebMailですね。
事例数としてはGmailからのものが圧倒的に多いです。
Gmailについては、引用内のスペースを
(ときどき)0xC2A0として送ることがあるようです。
常に、じゃないので規則がよくわかりませんが。
概ね署名欄で出てきたので、
その署名欄をつけたメーラのせいかと思ったのですが、
署名欄を引用する際に
Gmailが敢えて変換の処理を加えることがあるようです。

[ ]
RE:37859 0xC2A0対策No.37860
秀まるお2 さん 10/02/16 09:27
 
 gmailからユニコードのメール(日本語や欧文混じりのメール)を送るテスト
をしたら、たしかにutf-8で0xC2A0の文字が入ってメールが届きました。

 欧文を入れずに日本語だけにした場合は文字コードがJISになって、その場合
は普通の半角空白として届くようです。

 とにかくこの空白は、表示上はただの半角空白なのに文字コードが違っていて
ややこしい(例えば検索とかでヒットしない問題が出る)と思うので、可能な限
り、普通の半角空白に変換してしまうように修正させていただきます。

[ ]
RE:37860 0xC2A0対策No.37900
hajimet さん 10/02/22 14:23
 
検索の問題まで視野に入れると確かに気になる問題ですね。
ところで、今仕様変更で議論されているのは、
秀丸メールで受信した段階で変換するという意味ですよね。
既受信分について(検索まで視野にれた観点で)何か適切な対策があれ
ばご教示下さい。


以下追加情報です。

> gmailからユニコードのメール(日本語や欧文混じりのメール)を送るテスト
>をしたら、たしかにutf-8で0xC2A0の文字が入ってメールが届きました。
>
> 欧文を入れずに日本語だけにした場合は文字コードがJISになって、その場合
>は普通の半角空白として届くようです。

一応上記の問題のコードを?に変換すると、

>> ?e-mail ?メールアドレス@ドメイン.jp

のような位置に、件の変換がときどき生じているようです。

>が一層の時には生じません。

Gmailのユーザはやりとり相手として、
これからどんどん増えてくるでしょうから、一応、情報まで。

[ ]
RE:37900 0xC2A0対策No.37902
秀まるお2 さん 10/02/22 14:50
 
 既に受信してしまったメールについて、しいて0xC2A0の文字を普通の半角空白
に変換したいということでしたら、そういう置換をするマクロを作るか、または
「受信解析のやり直し」で手動で置換していくかってことになると思います。

 ただし、そもそも最初にあった話は「返信メール」とした時に警告が出たり'?
'に変換されたりといった話だったと思いますが、それについては、最新βで返
信する時には警告も出ないし'?'じゃなくてちゃんと半角空白に変換されて送信
されるようにしています。

 (受信メールのデコード関係の処理とは別にそういう処理も入れました)

 ということで、過去に受信したメールの中に0xC2A0の文字が残っていることは
そんなに問題にはならないと思います。

[ ]
RE:37902 0xC2A0対策No.37912
hajimet さん 10/02/23 02:44
 
> ということで、過去に受信したメールの中に0xC2A0の文字が残っていることは
>そんなに問題にはならないと思います。
了解です。ありがとうございました。

[ ]