アプリ版:「スタンプのみでお礼する」機能のリリースについて

iPhoneのメールのHTMLスクリプトの中で、テキストに当たる部分が=付きのUTF-8コード(のアスキー文字)、例えば、

<p>=EF=BC=A1=.......................</p>

の様になっていて、エクスプローラなどで読み込んでもそのまま表示されてしまいます。これを可視化するにはどうすればよいのでしょうか。また、VCの関数でこれを可視化できるものはあるでしょうか。

以上、宜しくお願い致します。

A 回答 (2件)

>そこで、このようなものをわざわざ自分で作らなくても、既存のアプリなり、関数なりで処理できないのかと思った次第です。



探してみないことには断言できませんが…
おそらく無い…でしょうね。

HTMLでUTF-8などの非ASCIIをquoted-printableエンコードで出力する。
なんていう事態がそもそも普通ではありませんし。

HTMLメールをUTF-8で……というのであれば、MIMEの仕様に沿った形式で出力すべきです。
HTMLメールなら通常はテキスト形式以外に別に添付…みたいな形式でしょうから、html部分は丸ごとbase64とかても可能なのではないですか?
送信側がどう処理しているのか判りませんが。

>しかし、実際には=の直後に改行0x0Aがあったり、</p>の直前に=があったりと、結構処理がめんどくさそうです。

送信側がどういうルールで作成したのか判らないので、
ある程度は試行錯誤…でしょうかね。

=の直後に改行がある。に関しては、改行は無視する処理を追加…でしょう。
htmlである以上、途中にある改行は無視…のハズですから。
# SMTPの仕様では78文字辺りで改行する。というようなものがあったかと。
# リレーしている途中のサーバで強制的に改行された可能性も否定しきれません。

<//p>直前の'='は…無視するか、実際に'='のまま出力するか…のどちらかかと。
quoted-printableエンコードなら'='自体もエンコード対象のハズですが。
    • good
    • 0
この回答へのお礼

有難うございます。

改行の前後は、例えば、

...=EF=BC=A1=EF=\n=BC=A2...

のようになっているので、=\nを読み飛ばせば良いですね。
文字列を観察しながら、何とか努力して、処理ルーチンを作成してみたいと思います。

お礼日時:2012/08/05 11:07

MIMEのquoted-printableエンコード…でしょうかね。



エンコード方法としては複雑でもないですから、デコード処理自体はそれほど難しくないでしょう。
'='が来たらその後ろ2文字を16進数文字として数値化するだけ。
quoted-printableエンコード以外の場所で'='が来た場合…が問題ですけどね。
まぁ、今回の場合は…
・htmlタグの内側('<'から'>'の間)ではない。
・<p></p>の間。
とか条件あるでしょうからソレでなんとかできるのではないかと。

デコードした後の文字列の扱いの方が問題かも知れませんが。
# 文字コードとして。
まぁ、今回はUTF-8と確定しているようですから……
デコードしてhtmlファイルにするときに正しくUTF-8で書き出せば良いかと。
# htmlヘッダなどで文字コード指定している場合はそちらもUTF-8にする必要があるでしょうけど。
# <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > とか。

この回答への補足

Wr5様

早速のご回答有難うございます。
おっしゃる趣旨は大変よくわかります。実は私もそうしようとしていました。しかし、実際には=の直後に改行0x0Aがあったり、</p>の直前に=があったりと、結構処理がめんどくさそうです。また、<p>の他にもタイトル行などの処理も必要でしょう。そこで、このようなものをわざわざ自分で作らなくても、既存のアプリなり、関数なりで処理できないのかと思った次第です。

補足日時:2012/08/04 21:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!