@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

文字化けにつきまして

投稿者投稿内容
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-15 09:27
いつもお世話になっております。

どの分類に書けばよいか分からなかったためココに投稿さしてもらいました。
間違えていたら申し訳ございません

現在ASPで開発をしております。
ハイパーリンクを押すとメール送信のフォームがでまして
メールを送れるようにしているのですが
件名の部分のみ「????????」と表示されます。
エンコードで色々当てはめてみたのですが どれもあてはまりませんでした。

解決方法をご存知の方がいらっしゃればご教授宜しくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-11-15 10:27
mailto:はメールクライアントの実装に強く依存します。使用しているメールクライアントとWEBブラウザはなんですか?

利用者のメールクライアントを特定できない状況では、mailto:利用を避けたほうが無難でしょう。ASPを利用できる状況なら、サーバー側でメールの送信処理を行えば済む話ですしね。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-15 10:50
甕星さんご回答ありがとうございます。

webブラウザはIEです。
メールクライアントはMicrosoft Outlookです。

>利用者のメールクライアントを特定できない状況では、mailto:利用を避けたほうが無>難でしょう。ASPを利用できる状況なら、サーバー側でメールの送信処理を行えば済む>話ですしね。

現状を動かせるようにするとのことなので、修正するしかないです。
アドバイス有難うございます。

追記
問題の「????」の部分なんですが
Basp21.Base64( メッセージ, 4)でエンコードし表示しております。
ただ、ローカルのほうで動かした場合はきちんと表示されるのですが
本番環境にあげると文字化けしてしまう状態です。

[ メッセージ編集済み 編集者: ポン 編集日時 2006-11-15 10:57 ]
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-15 13:39
追記です。後、少し質問の内容を変えさせて頂きます。申し訳ございません

現在ソースに
件名=Basp21.Base64(件名, 4)
<A href="mailto:<% =メールアドレス %>?subject=<%=件名 %>"><% =メールアドレス %></A>
と記述しております。

Basp21を使用しない場合
<A href="mailto:<% =メールアドレス %>?subject=あいうえお"><% =メールアドレス %></A>

メールの件名が「縺ゅ>縺・∴縺」の表示されます。

色々調べた結果どうもbasp21に問題があり、原因があまり掴めていないということから
basp21を使用しない別の文字方法はないでしょうか?

ご存知の方がいらっしゃればご教授よろしくお願いします。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-11-15 14:21
mailtoスキームで渡す場合はiso-2022-jpへの変換とかbase64とかはせずに「SJISのまま渡す」が基本だったと思います。上手く渡らないようだったらurlencodeしてみるとかではダメですか?
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-15 14:48
shimixさんご回答ありがとうございます。

>mailtoスキームで渡す場合はiso-2022-jpへの変換とかbase64とかはせずに「SJISのまま渡す」が基本だったと思います。

iso-2022-jpの変換とはどのようにすればよいでしょうか?

>上手く渡らないようだったらurlencodeしてみるとかではダメですか?
また開発暦が浅いもので間違ったことを言ってるかもしれませんが

<%@ Language="VBScript" CODEPAGE=65001 %>
<% Response.AddHeader "Content-Type","Text/html;charset=UTF-8" %>

を最初に宣言しているのですがこれを記述していてもurlencodeはできるのでしょうか?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-11-15 15:15
こんにちは。

先ほどちょっと書いていたのですが、私の手元の環境(ASP は使えないので素の
HTML で書きました)では subject を urlencode してみると大丈夫でした。
OS は WindowsXP Professional で InternetExplorer6 SP2 と
OutlookExpress 6 の組み合わせです。
HTML ファイルが シフトJIS の場合はエンコードの必要はありませんでしたが、UTF8
で保存した HTML ファイルからだと urlencode の必要があるようです。
(あくまで OutlookExpress に対する条件という範疇ですが)

で、ここまで調べてみたところで Basp21.Base64(文字列, 4) が実は
urlencode じゃねえか!というところに行き着いてしまい、やさぐれビッチになって消して
しまいました
http://www.hi-ho.ne.jp/babaq/basp21.html#0039

まぁそれはともかく。
まず調べるべきはローカル環境と本番環境の違いだと思います。
ローカル環境で正しく動いているということは、環境の違いに何か影響されるところがあ
ると思うので、まずは本番環境で件名が正しくエンコードされているかどうかあたりから見
てみるのはどうでしょうか。
 あいうえお→%82%A0%82%A2%82%A4%82%A6%82%A8
とか。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-11-15 15:17
shimixさんが言っているように、変換の必要は無ですよ。
特別に何も意識せずに生成されたHTMLが
<a mailto:admin@example.com?subejct=日本語を入れてみる></a>
となっていればよいはずです。

スキルアップ/キャリアアップ(JOB@IT)