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

MailTo:で日本語が文字化けする

投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-12-17 09:19
ASP.NET(VB.NET)でmailto:を利用したWebページを作成したのですが
<a href="mailto:xx@xxx.jp?subject=Comments from MailTo Syntax Page">
のsubject=に日本語を指定すると、メーラーに件名が表示
されますが文字化けします。

どなたか文字化けの対処方法ご存知のかたご教授ください。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-12-17 09:31
Accessさん、お早うございます。

引用:

どなたか文字化けの対処方法ご存知のかたご教授ください。


ページのエンコード指定をshift_jisにすれば解決しそうな気がします。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-12-17 10:18
ほむらです。
----------
もしも、動的に作成しているのならば
URLエンコードでエスケープしてあげるという手もあります。
ブラウザのほうで修正してくれるとおもいますから
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-12-18 05:55
引用:

ページのエンコード指定をshift_jisにすれば解決しそうな気がします。


@PageディレクティブにresponseEncoding="shift-jis"を指定しましたが
だめでした。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-12-18 06:04
引用:

もしも、動的に作成しているのならば
URLエンコードでエスケープしてあげるという手もあります。
ブラウザのほうで修正してくれるとおもいますから



"mailto:"をASP.NETのHyperLinkタグに動的に生成しています。
ご指摘のようにServer.UrlPathEncode()でSubjectをエンコードしてもだめでした。

コード:

Dim strLinkText As String
Dim strRecipient As String = textTo.Text
Dim strSubject As String = textSubject.Text
Dim strBody As String = textBody.Text

' Case1 => NG
strLinkText = "mailto:" & strRecipient & _
"?Subject=" & Server.UrlPathEncode(strSubject) & _
"&Body=" & Server.UrlPathEncode(strBody)

' Case2 => NG
strLinkText = "mailto:" & strRecipient & _
"?Subject=" & strSubject & _
"&Body=" & strBody
strLinkText = Server.UrlPathEncode(strLinkText)

Hyperlink1.NavigateUrl = strLinkText
Hyperlink1.Visible = True



P.S.
参考までに
http://www.ianr.unl.edu/internet/mailto.html
にあるサンプルをASP.NETで動的に生成しようと思ったのですが
日本語は文字化けでうまく動作しないようです。

[ メッセージ編集済み 編集者: Access 編集日時 2003-12-18 06:12 ]
mikehi
会議室デビュー日: 2003/12/18
投稿数: 1
投稿日時: 2003-12-18 09:00
Server.URLPathEncode の代わりに
Server.URLEncode ではどうでしょうか。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-12-18 09:01
Accessさん、お早うございます。

引用:

@PageディレクティブにresponseEncoding="shift-jis"を指定しましたが
だめでした。


responseEncoding="shift_jis" としてみて下さい(ハイフンでなく、アンダースコア)。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-12-18 09:58
responseEncoding="shift_jis"でもだめでした。
それから、Server.UrlPathEncode()をServer.UrlEncode()に代えても
結果は同じでした。

もう少し時間をかけて解決方法を探してみます。

きくちゃんさん、ほむらさん、mikehiさんありがとうございました。

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