このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

ClipDecoderについて

発言者:前田和美
( Date Wednesday, December 09, 1998 23:01:46 )


はじめまして。自分のHPの投稿フォーマット用に、田中求之さんが作られたClipDecoder1.31を愛用させていただいているものです。(OS8、Netscape Communicator4.0を使っています)
ある方からインターネットエクスプローラーで投稿をいただいたようなのですが(タイトルにそう書いてありました)、いつものように一番簡単な方法で翻訳してもらおうとしてもうまくいきません。
EUC to SJISのボタンを押してもそのままの状態です。
ちなみにtitle:3Dこんにちはー letter:3D初めま% (以下真っ白になります。明らかにそれより文字数は多いようですが)。 name:3DミスターK という感じです。この「3D」というのは何かこの状態に関係があるのでしょうか。

ほかのみなさまのように専門用語があまり分からないので、うまく説明できないのですが、どうかアドバイスをよろしくお願いいたします。

→  かに助とうに子のぺいぢ

やまかわ さんからのコメント
( Wednesday, December 09, 1998 23:38:11 )

わたしも前田さんのような状態になります。 
エクスプローラーでフォームから送信されてきたメール本文の文字列に かならず
各項目の先頭に 「3D」という文字が含まれています。 
変換する前から含まれているので ClipDecoderの間違えでないことは明らかなのです。

「3D」のほかには、ClipDecoderで変換後 たまに漢字が文字化けしてます。「3D」以外にも
不必要な文字が混入されているように思います。

何か解決策はあるのでしょうか?

前薗 健一 さんからのコメント
( Thursday, December 10, 1998 01:15:31 )

URL Encode/Decode のことを理解しているのであれば,手動で
ゴミをとってから Decode するしかないと思います.

私も Win user から問い合わせがあるのですが,Win の BUG に
対応する気はありません.

田中求之 さんからのコメント
( Thursday, December 10, 1998 12:44:57 )

前薗さんのコメントにもあるように、基本的には、エクスプローラーが余分なデータを
付加するのが問題を引き起こしていると考えられます。

エクスプローラーが mailto をどのような仕様で送りだすようになっているのかは
分かりませんが、おそらく、改行コードを URL 形式ではない変換を行っているの
だと思われます。

以前にも同様の問い合わせがあったように思いますが、いずれにせよ、こちらと
しては、エクスプローラーの仕様にいちいち合わせるのは面倒なので(私自身、
今ではインストールしてませんし)、データ変換の際に手動でゴミを取り除いて
いただくしかないと思います。

やまかわ さんからのコメント
( Friday, December 11, 1998 17:00:44 )

困ったエクスプローラーです・・・・。

前田和美 さんからのコメント
( Monday, December 14, 1998 22:43:30 )

すみません、「ゴミを取り除く」ことに挑戦したいと思いますので、初心者向きの本を教えていただけませんでしょうか。
ちなみに、URL形式についての知識はありません。
でもせっかくいただいたメールなので解読したいと思います。

田中求之 さんからのコメント
( Monday, December 14, 1998 23:14:13 )

ゴミがどのような形になっているのかを見極める必要があります。

よかたったら、解読できないメールの実例を見せてもらえますか? そうすれば
どのような処理をすればよいか分かります。

前薗 健一 さんからのコメント
( Tuesday, December 15, 1998 00:05:28 )

下記のページで URL encode/decode については解説しています.
田中さんのページのどっかにもあったはず.

→  ClipDecoder for Windows

田中求之 さんからのコメント
( Tuesday, December 15, 1998 14:20:57 )

見せていただいたメールのデータを見ると、エクスプローラーから送られてきた場合は

・データに改行が加えられており、改行コードとして = + CR が使われる

・データ中の = は =3D に置換されている(改行コードとの区別のためか?)

という処理がなされているようです。ClipDecoder 側でこれに対応するには、スクリプト
を以下のように変更してください。

スタックのスクリプトの中に decoder という関数ハンドラーがあります。これがデータの
デコードを行っているのですが、この最初の方に

function decoder mydata
  if myData = "" then return ""
  
  put MtReplace(myData,return,"") into myData


という部分があります。この put MtReplace...  の前に2行追加して、


function decoder mydata
  if myData = "" then return ""
  
  put MtReplace(myData,"="&return,return) into myData --- これを追加
  put MtReplace(myData,"=3D","=") into myData --- これを追加
  put MtReplace(myData,return,"") into myData

と書き換えてください。これでうまくいくのではないかと思います。

木本豪 さんからのコメント
( Tuesday, December 15, 1998 14:46:26 )

「=」が「=3D」になるといったら,
MIME の quoted-printable でしょう.
つぎのような行がメールヘッダについてきませんか?

Content-Transfer-Encoding: quoted-printable

やまかわ さんからのコメント
( Wednesday, December 16, 1998 20:15:50 )

田中先生ありがとうございます。

ClipDecoderに上記の内容を書き加えて無事変換が行われました。

→  ここに置いておきます。

前田和美 さんからのコメント
( Thursday, December 17, 1998 21:15:19 )

みなさまありがとうございました。
私が日本語版Hyper Card2.3を手に入れている間にすべては終わっていたのですね…ははははは。
でも、今回の件でHyper Cardについてちょっと分かりました(今までは何やら分からず使っていた!)
またくだらん質問しても見捨てないでください。

田中求之 さんからのコメント
( Friday, December 18, 1998 01:16:11 )

どうぞ遠慮なく質問してくださいね。

なお、HyperCard は HyperCard で、無茶苦茶奥が深いソフトですよん。