![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
海外製のプログラムを日本語対応に修正しているのですが「~」が文字化け(?)になります。
下記がコードの一部を抜粋したものです。
$message=jcode($message)->sjis;
my $msg = MIME::Lite->new(
Type =>'multipart/mixed',
From =>$fromaddr,
To =>"$to",
Subject =>"$subject",
Type => "text/plain; charset=\"iso-2022-jp\"",
Data =>"$message"
);
「~」だけが文字化けします。
下記のように文字コードを UTF-8 にすると文字化けしませんが、
メールで UTF-8 を使うのは良くないのでしょうか。
$message=jcode($message)->utf8;
my $msg = MIME::Lite->new(
Type =>'multipart/mixed',
From =>$fromaddr,
To =>"$to",
Subject =>"$subject",
Type => "text/plain; charset=\"utf-8\"",
Data =>"$message"
);
これだと文字化けしません。
UFT-8 でメールを送信しても問題ないのか、
また、問題の有無に関係なく iso-2022-jp で文字化けしない方法を
ご教授いただけないでしょうか。
よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
波ダッシュ問題という有名な問題なのでこの言葉で検索すれば詳細が得られると思います。
解決方法は色々あると思いますが、以下のように全角チルダを波ダッシュに強制変換するとか。
Perlで日本語(ISO-2022-JP)メールを送信(まとめ)
http://d.hatena.ne.jp/kopug/20060903
ありがとうございます。
有名な問題だったのですね。
大変勉強になりました。
また、紹介していただいたサイトで解決することが出来ました。
No.4
- 回答日時:
たぶん Lite.pm は関係ないよね.
「~」を Unicode のどれに割り付けるかという問題でしょう... あれ? iso-2022-jp で送るのに sjis でいいんだっけ?
参考URL:http://ja.wikipedia.org/wiki/Unicode
No.3
- 回答日時:
波ダッシュが、チルダに変換されてしまった……
先ほど書いた、波ダッシュの件に関しては、ここを参照してください。
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80% …
No.2
- 回答日時:
ちょっと意味は変わりますが、同じようなのに
~
があります。
これでしたら、全機種共通だったと思います。
ですが、Windowsから出すのは大変だったと思います。
IMEパッドでは出せるのですが……
jisでも、sjisでも対応してないということですね<~が?になる
あと、受信する相手にもよるのですが、
基本的にUFT-8でメール送信しても大丈夫です。
ありがとうございます。
大変参考になりました。
> 基本的にUFT-8でメール送信しても大丈夫です。
安心しました。
「ISO-2022-JPは7ビットで表現されているため、欧米などで開発された8ビット目を無視する電子メールシステムでも問題なく使用することができる。」
という記事を見たので少し心配していました。
No.1
- 回答日時:
~は、機種依存文字なので、文字化けしやすい文字です。
まぁ、それは置いておいて、
utf-8で文字化けしなくて、
iso-2022-jpで文字化けする理由ですが、
$message=jcode($message)->sjis;
ここを、sjisにしているからではないですか?
いちど、jisにしてみてはどうでしょう?
早速ご教授いただきありがとうござます。
> ~は、機種依存文字なので、文字化けしやすい文字です。
「~」は機種依存文字なのですね。知りませんでした。
機種依存文字ではない文字で「~」と同じ意味を表現出来る文字というのはあるのでしょうか。
> いちど、jisにしてみてはどうでしょう?
私も初めは
$message=jcode($message)->jis;
にしていたのですが、そうすると
「?」ではなく、「\x{ff5e}」に文字化けしてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1つのサイトで文字コードが混在...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
EXCELからCSVにすると余計なカ...
-
英数字のみ全角から半角に変換
-
○文字目に文字挿入
-
住宅にカナを入力する際に丁目...
-
改行のないテキストを指定バイ...
-
COBOL・全角判定
-
「何とかで始まり、何とかで終...
-
算用数字(半角)から漢数字へ...
-
xmlファイル内の文字列置換
-
正規表現 特定の文字列を含む行...
-
全角数字を半角数字にする方法
-
IEからEdgeへの移行に伴うIMEの...
-
VBAでtxtファイルを読み込む際...
-
ひとつの命令を複数行に記述
-
EXCEL警告「置換対象のデータが...
-
各項目がダブルクォーテーショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonエラー
-
「繝・せ繝・」となる文字化け
-
Perl:ファイル名だけ文字化けする
-
1つのサイトで文字コードが混在...
-
Perlでのメール本文の解析について
-
メール(iso-2022-jp-2)のデコ...
-
IMAP4でsubjectが検索ヒットしない
-
BASP21によるbase64のデコード...
-
標準入力からのutf-8→euc-jpで...
-
jcode.pmでconvertできない
-
テキストファイルから日本語部...
-
文字コードの変換
-
jcode.plとはどんなものですか
-
quoted-printableのアルゴリズム
-
検索キーワードのデコードについて
-
Perl 文字化け
-
CGIでメールを送る際に文字...
-
httpリクエストのbody部分について
-
文字コードを指定する際sjisな...
-
CSVファイルの中で、「 , 」カ...
おすすめ情報