linux文字コードはutf8,linuxからOutlook Expressに送信する。
受信したメールは文字化けとなる。なぜですか。
linuxで、シェルの中で、下記の部分で、送信する。
/sbin/service snmpd start 2>&1 | \
/bin/mail -s "snmpd was restarted tomatically." s@ks.co.jp
上記のソースを見ると、分かると思いますが。
メールの本体について、linuxで、VIモードで、
snmpd を起動中: ^[[60G[ ^[[0;32mOK^[[0;39m ]となっています。
catモードで、見ると、snmpd を起動中: [OK] となっています。
どうすれば、文字化けがなくなれますか。
No.3ベストアンサー
- 回答日時:
>「snmpdを起動中」の部分も化けています。
では、serviceコマンドの出力をメールで標準的に用いられる文字コードに変換する
/sbin/service snmpd start 2>&1 | iconv -f UTF-8 -t iso-2022-jp | mail -s .....
とか、そもそもメッセージを英語にする
LANG=C /sbin/service snmpd start 2>&1 | mail -s .....
などの対応が考えられます。
ただし、それでも [OK] の前後の制御文字列は残ってしまいますので、
> 制御文字列を取り除くようなフィルタを通す必要があります。』はどいうことですか。
sed などを使って、制御文字を削除するということです。
どうもありがとうございます。さすがという感じです。
まだ、質問があります。
実際に何千本のソースは上記のような問題があります。
各ソースで、出すメールも違います。
(1)制御文字列を取り除くことについて、
snmpd を起動中: ^[[60G[ ^[[0;32mOK^[[0;39m ]の中に、
制御文字は^[、G、mだけですが、制御文字にいろんな種類があります。
何千本のソースについて、制御文字が違うので、sedの利用方法も違うでしょうと思います。1つのsedの利用方法で、各ソースで、りようできれば、いいかなと思います。
(2)いろんなメーラがあります。Outlook Expressだけではないです。
メーラの文字コードも違います。文字コードをiso-2022-jpに変換しても大丈夫ですか。
No.7
- 回答日時:
最後と言いつつ、もう一点
> ソースを修正する以外のやり方
/bin/mail をスクリプトに置き換えて、ここでフィルタを通してしまうという手もありますね。非常に乱暴なやり方なのでお勧めしませんが。
No.6
- 回答日時:
うは、ノンストップですな…これで最後にします。
/bin/mail を sed 's/\x1b\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | /bin/mail に置換するフィルタの例です。
sed "s@/bin/mail@sed 's/\\\\x1b\\\\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | /bin/mail@g"
No.5
- 回答日時:
> なぜ、文字化けとなりますか。
Outlook Expressが、UTF-8の自動検出に対応してないか、ごく僅かな日本語文字列しか無いために、自動検出に失敗しているかのどちらかでしょう。いずれの場合でも、#1 さんがおっしゃるように、Header にコードが指定してあれば化けません。
Outlook Express から UTF-8 のメールを送る際は、適切なHeaderが付加されているはずですが、mail コマンドではHeaderが付加されませんので。
> 何千本のソースを対応しなければならないので、何か作業量を減らす方法とかありますか。
全部がシェルスクリプトで、決まったパターンがあるなら、自動的に書き換えるようなコードを書いて使えば良いと思います。
必ず mail コマンドにパイプするようになっているなら、その直前にフィルタを追加するような、比較的簡単なスクリプトで対応できると思います。頑張ってください。
すみません。初心者なので、例をあげてもいいですか。
(1)『全部がシェルスクリプトで、決まったパターンがあるなら、自動的に書き換えるようなコードを書いて使えば良いと思います。』の例
No.4
- 回答日時:
ちょっと書いてみました。
何千本ものソースに対応できるかは不明ですが。。。
/sbin/service snmpd start 2>&1 | sed 's/\x1b\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | mail -s ....
iso-2022-jp は極めて標準的なので、決め打ちで大丈夫だと思います。
ご丁寧にご回答していただいて、ありがとうございます。
すみません。まだ質問があります。
(1)なぜ、文字化けとなりますか。
linux文字コードはutf8,linuxからOutlook Expressに送信する。
受信したメールは文字化けとなる。
Outlook Expressで、utf8のメールを送信しても文字化けとなりません。
これはなぜですか。
(2)何千本のソースを対応しなければならないので、何か作業量を減らす方法とかありますか。
No.2
- 回答日時:
Outlook Express で「snmpdを起動中」の部分も化けているのでしょうか?
[OK] の部分だけが化けているのであれば、文字コードの問題ではありません。端末上で文字に色をつけるための制御文字列が生で表示されているだけです。
これが気になるなら、制御文字列を取り除くようなフィルタを通す必要があります。
この回答への補足
(1)「snmpdを起動中」の部分も化けています。Outlook Express でエンコードを手動で、utf8に変更すれば、「snmpdを起動中」の部分の文字化けがなくなります。だが、okの部分はまだ文字化けしています。今は手動で、エンコードを変更してほしくないです。どうすればいいですか。
(2)『制御文字列を取り除くようなフィルタを通す必要があります。』はどいうことですか。
No.1
- 回答日時:
ヘッダに正しい文字コードが書かれていないか、そもそもヘッダがないかのどちらかでは?
http://www.atmarkit.co.jp/fwin2k/win2ktips/711ma …
正しいヘッダを付けるか、↑に書かれているようにメーラ側で手動でエンコードを指定して読むかのどちらかでしょう
この回答への補足
Outlook Express でエンコードを手動で、utf8に変更すれば、「snmpdを起動中」の部分の文字化けがなくなります。だが、okの部分はまだ文字化けしています。今は手動で、エンコードを変更してほしくないです。どうすればいいですか。
補足日時:2009/05/09 10:51お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(メールソフト・メールサービス) outlookからの送信された件名が文字化けします 2 2023/04/18 14:29
- その他(メールソフト・メールサービス) 【GAS】GMail自動送信 2 2022/09/04 06:19
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- Windows 7 「このwindows 7 は正規品ではありません」正規品ではないということですか? 3 2022/06/25 11:41
- その他(SNS・コミュニケーションサービス) 爆サイやっていたら、下のような文字が出ました! これは何なのでしょうか? nginx error! 1 2023/06/09 12:27
- UNIX・Linux EC2の暗号化された.confファイルを複合したい! 1 2023/06/08 23:20
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- 画像編集・動画編集・音楽編集 動画編集ソフト 0 2022/08/29 14:34
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
memcached を起動できません。
-
起動時にバッチファイルを実行...
-
インデザイン(InDesing)の開き...
-
Linuxサーバーは定期リブートを...
-
Linuxのカーネルパニックについて
-
/etc/init.d/rcSにプログラムを...
-
Linuxの/etc/inittabの変更の適...
-
FTPでユーザ名の表示
-
起動時のエラーについて。
-
別ターミナルへのprintf出力
-
namedが起動しない
-
VNCクライアントから管理者権限...
-
httpd(Apache)でhttpsのポート...
-
Linux(redhat系)の実行ユーザ...
-
CentOS7が起動したときGNOME起...
-
linuxからのメールが文字化けと...
-
AIXルーティング情報について
-
NTPサーバが死んでいるときのNT...
-
batファイルでのプログラム起動順
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
WMIを有効にする方法が分かりま...
-
MacOSのLaunchAgentsってなんで...
-
インデザイン(InDesing)の開き...
-
batファイルでのプログラム起動順
-
linuxからのメールが文字化けと...
-
Linuxサーバーは定期リブートを...
-
Linux(redhat系)の実行ユーザ...
-
gnomeのスタートアップの設定フ...
-
VNCクライアントから管理者権限...
-
起動時のターミナルの状態を戻...
-
httpd(Apache)でhttpsのポート...
-
chkconfig がうまくいかない
-
namedが起動しない
-
さくらvps ftp 接続できない
-
テキストログインでstartxをし...
-
KDEをインストールしてもstartx...
-
apacheが起動しない
-
rcpができない
-
RedHat9起動時にエラー
おすすめ情報