ISO-2022-JPのサポートNo.20736
たっちゃんにゃー さん 06/01/17 20:17
 
JISはあってもISO-2022-JPとコードが異なりHPはISO-2022-JPがあり、メールの
From:はISO-2022-JPを使っていて、うまく行かず困ってます。
ご面倒かも知れませんが、よろしくお願いします。

[ ]
RE:20736 ISO-2022-JPのサポートNo.20738
秀丸担当 さん 06/01/18 10:12
 

>JISはあってもISO-2022-JPとコードが異なりHPはISO-2022-JPがあり、メールの
>From:はISO-2022-JPを使っていて、うまく行かず困ってます。
>ご面倒かも知れませんが、よろしくお願いします。

メールのヘッダは、ヘッダ専用のエンコードになっています。
「=?ISO-2022-JP…」というような感じで書かれている部分は、まずヘッダ専用
エンコードがあって、その次にISO-2022-JPのエンコードがあるということにな
ります。
なので、秀丸エディタでISO-2022-JP相当の「日本語(JIS)」を指定して読み込ん
でも解釈されません。
秀丸エディタでテキストファイルとして読み込むときは、「=?ISO-2022-JP…」
と書かれた部分がヘッダなのか本文なのかの区別は無いので、そのままエンコー
ド/デコードするのは問題があります。

これを変換するようなマクロや、変換モジュールがあると便利かもしれないです
がいまのところマクロ作者様などによって作られたものはあるかどうかわかりま
せん。

HPに関してはそういうことは無いと思うのですが、どういった問題があるでし
ょうか。
やりたいことなどの具体的な例などを示していただけるとわかるかもしれません。

[ ]
RE:20736 ISO-2022-JPのサポートNo.20741
秀まるお2 さん 06/01/18 10:40
 
 メールならば、例えば秀丸メールのようなメールソフトにインポートさせてや
ればいいんじゃないかと思います。

 base64エンコードされてるのをデコードする変換モジュールとか、そもそも
メールをデコードする用の変換モジュールも作ろうとしたことはあります。秀丸
メールの中の処理を流用すれば割と簡単に作られるので。今のところ、作りかけ
のままほったらかしになってます。

[ ]
RE:20741 ISO-2022-JPのサポートNo.20748
Iranoan さん 06/01/18 15:54
 
 たっちゃんにゃーさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
>  メールならば、例えば秀丸メールのようなメールソフトにインポートさせてや
> ればいいんじゃないかと思います。
 あくまで秀丸でやりたいのなら、nkf などを秀丸から呼び出すマクロを使う
と簡単だと思います。必要なら書きますが...。

[ ]
RE:20738 ISO-2022-JPのサポートNo.20753
たっちゃんにゃー さん 06/01/19 07:15
 
MAIL "Form:アドレス(名前)\n";
ここでISO-2022-JPが絡んでくるのです。
MAIL "Form:アドレス( ここまでがシフトジス
名前)までがJIS、漢字の場合ESC(Bで戻すから)がJISになって終わりの)が無い
ので)が自動的に作られます。

8bit "Form:アドレス( 7bit名前) 8bit)\n" で)が多くなる。
となります。
7bitのESC(Bは改行コードが7bitの為受け入れる様に戻しています。

参考ながら#--------------------------perl
$test ='1あ2い3う4え5お';
&jcode2::convert(*test, 'jis');
print "$test test1<br>\n";
if ($test ne ''){
 while ($test =~ /(.*)\x1B\x28\x42$/ || $test =~ /(.*)\)$/) {$test=$1;}
 # $test .= '8bit元コード)';#euc-jp 等に返還後)を閉じる。「8bit元コードは必
要ないかも)だけでOK」
}
print "$test test2<br>\n";
#----------------------------------
と言うコード生成をメーラーに入れられれば解決するかも知れません。
7bitの終わりを消して8bitのコードにします。
メーラーを作られないので、ISO-2022-JPでなんとかしようと・・・
と言うことで、他力本願をお願いしたのです。
よろしくね。(^-^;)/

[ ]
RE:20741 ISO-2022-JPのサポートNo.20754
たっちゃんにゃー さん 06/01/19 07:21
 
base64 は使っているサーバーに無かったです。
つまり、サーバーを触らないと解決出来ませんので
*.plで何とか出来ないかと・・・

お返事ありがとう。

[ ]
RE:20748 ISO-2022-JPのサポートNo.20755
たっちゃんにゃー さん 06/01/19 07:23
 
実は、マクロを触れるほどの頭が無いのです。
ごめんなさい。m(_"_m)

[ ]
RE:20754 ISO-2022-JPのサポートNo.20758
アルビレオ さん 06/01/19 09:41
 
ユーザーのアルビレオです。

>base64 は使っているサーバーに無かったです。
>つまり、サーバーを触らないと解決出来ませんので
>*.plで何とか出来ないかと・・・

サーバーにMIME::base64が用意されていないということでしょうか?
base64は非常に単純なものなので、機能を限定したものなら簡単に自作できると
と思いますよ。
でも私はそんなにperlをいじったことがないのでもっと詳しい人が登場すること
を期待しておきます(^^;

[ ]
RE:20753 ISO-2022-JPのサポートNo.20759
秀丸担当 さん 06/01/19 09:42
 

>MAIL "Form:アドレス(名前)\n";
>ここでISO-2022-JPが絡んでくるのです。
>MAIL "Form:アドレス( ここまでがシフトジス
>名前)までがJIS、漢字の場合ESC(Bで戻すから)がJISになって終わりの)が無い
>ので)が自動的に作られます。
>
>8bit "Form:アドレス( 7bit名前) 8bit)\n" で)が多くなる。
>となります。
>7bitのESC(Bは改行コードが7bitの為受け入れる様に戻しています。

つまり、Webサーバー上でperlを実行してメールを送るというプログラムを作ろ
うとしているけど、Fromの最後の)が二重になってしまうという問題があって、
それをなんとか解決したいということでしょうか。

perlのプログラミングのことはよくわからないので想像で回答してしまいますが、

print MAIL "From: xxxx@hoge.hoge(太郎)\n";

というソースで、名前の部分も変数とかじゃなくて直接ソースコードに書き込ん
でいるということでしょうか。
それで、秀丸エディタで、

print MAIL "From: xxxx@hoge.hoge(=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=)\n";

というような形で最初からソースコードを作成して保存したいという意味でしょ
うか。


たぶん一般的にはperlのプログラミングの上で解決するべきことであって、秀丸
エディタがどうこうするという問題ではないと思います。
perlのことはよくわからないので想像ですが、Shift-JISで書くときは漢字の2
バイト目が「\」と同じコードでそれをエスケープしなくてはいけないとか。
"(図表\)"
とか、そもそもEUCで書くべきとか。
open MAIL, "|nkf |sendmail";
とかnkfを通さなくてはいけないとか。さっぱりわかりませんがたぶんそういう
ことだと思います。

[ ]
RE:20759 ISO-2022-JPのサポートNo.20763
たっちゃんにゃー さん 06/01/19 19:54
 
>つまり、Webサーバー上でperlを実行してメールを送るというプログラムを作ろ
>うとしているけど、Fromの最後の)が二重になってしまうという問題があって、
>それをなんとか解決したいということでしょうか。

そうなんです。
ISO-2022-JP をエンコード(元に戻す)?したらJISコードが出て来ました(^_^;A

コードもJISとは全く違い独自にISO-2022-JPがあると思っておりました。

>perlのプログラミングのことはよくわからないので想像で回答してしまいますが、
>
>print MAIL "From: xxxx@hoge.hoge(太郎)\n";
>
>というソースで、名前の部分も変数とかじゃなくて直接ソースコードに書き込ん
>でいるということでしょうか。
>それで、秀丸エディタで、
>
>print MAIL "From: xxxx@hoge.hoge(=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=)\n";
>
>というような形で最初からソースコードを作成して保存したいという意味でしょ
>うか。

print MAIL "From: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";

From: =?ISO-2022-JP?B?GyRCRXokKCRGJE0kQyRIO3ZMMzZJGyhC?=<notify@kotaete-net.
net>
Subject: =?ISO-2022-JP?B?GyRCRXokKCRGJE0kQyRIJCskaSQqQ04kaSQ7GyhC?=

と言う様なコードがあるから独自のコードかと思っておりました。
独自のコードなら、サポートするエディターが無い物かと。。。

>たぶん一般的にはperlのプログラミングの上で解決するべきことであって、秀丸
>エディタがどうこうするという問題ではないと思います。
>perlのことはよくわからないので想像ですが、Shift-JISで書くときは漢字の2
>バイト目が「\」と同じコードでそれをエスケープしなくてはいけないとか。
>"(図表\)"

これはシングルの'図表'で回避出来るのです。ダブルだとご指摘の様になります。

>とか、そもそもEUCで書くべきとか。
>open MAIL, "|nkf |sendmail";
>とかnkfを通さなくてはいけないとか。さっぱりわかりませんがたぶんそういう
>ことだと思います。

ISO-2022-JPが独自のコードでHP自体をISO-2022-JPで使えば変換が要らないのでは
と言う無知な所から出て来ました。

すみません。変な話題を持ってきて。

[ ]
RE:20758 ISO-2022-JPのサポートNo.20764
たっちゃんにゃー さん 06/01/19 19:59
 
初めまして。

>サーバーにMIME::base64が用意されていないということでしょうか?

はい、やってみたら、エラーが出ました。(^_^;A

>base64は非常に単純なものなので、機能を限定したものなら簡単に自作できると
>と思いますよ。
>でも私はそんなにperlをいじったことがないのでもっと詳しい人が登場すること
>を期待しておきます(^^;

おいらも、期待しております。
perl持ってきて、ごめんなさい。

[ ]
RE:20763 ISO-2022-JPのサポートNo.20766
秀丸担当 さん 06/01/20 09:40
 

>と言う様なコードがあるから独自のコードかと思っておりました。
>独自のコードなら、サポートするエディターが無い物かと。。。

print MAIL "Subject: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";
print MAIL "From: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";
print MAIL "\n";
print MAIL "=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";

とかなっていると、1,2行目のヘッダは漢字として解釈されますが、4行目の
本文はメールで解釈される場合は漢字ではなくそのままASCII文字の羅列になっ
て解釈されると思います。

テキストエディタにとって、この一行一行がヘッダか本文かの区別はしようがな
いので、これをファイルのエンコードとしてサポートできるエディタは存在し得
ないと思います。
(1メール1ファイルのメール形式(eml形式?)に限定したものでれあれば可
能性は無いとはいえないですが。)

先に述べたように、マクロや変換モジュールによって、範囲選択した部分を

=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=
↓↑
太郎

とかいった感じで相互に変換する機能でもあれば、これはそれなりに有用な場面
もあって便利かもしれません。
いまのところ公開されているものは無いっぽいので自分で作るか誰かが作ってれ
るのを期待するしかないですが。

[ ]
RE:20766 ISO-2022-JPのサポートNo.20767
たっちゃんにゃー さん 06/01/21 09:36
 
>
>>と言う様なコードがあるから独自のコードかと思っておりました。
>>独自のコードなら、サポートするエディターが無い物かと。。。
>
>print MAIL "Subject: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";
>print MAIL "From: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";
>print MAIL "\n";
>print MAIL "=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n";

これ、From: =?iso-2022-jp?B?GyRCQkBPOhsoQg==?=\n の
部分以外はjisにしておけば良いんですよ。
=?iso-2022-jp?B?GyRCQkBPOhsoQg==?=
は元に戻すとjisコードの xxxx@xo.ne.jp(太郎 ESC(b )になる7bit
8bit混合コードなんです。蛇足ですが・・・

どうも、サポートありがとうございました。

[ ]