- 締切済み
JavaMailでiモードの絵文字を送信する際のcharset
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mld_sakura
- ベストアンサー率20% (264/1282)
関連するQ&A
- JavaMail特殊文字付本文が文字化けで困ってい
現在JavaMail(Ver1.4)+JAVA 7を使用して、あるメール配信システムを 構築しています。仕様上特殊文字を使用しなければならないので、 受信メールに特殊文字付本文が文字化けで困っています JavaMailのバッチがIBMのUNIX系AIXサーバ(文字コードがCP943C) に置いて、起動する メール本文データがIBMのDB2(文字コードがCP943C)から取得し、 Stringのhonbun_DB変数にいれる。 メール送信の本文が String honbun = new String(honbun_DB.getBytes("ISO-2022-JP"),"ISO-2022-JP") msg.setText(honbun,"ISO-2022-JP"); メールのヘッダーが msg.setHeader("Content-Type", "text/plain; charset="+"ISO-2022-JP"); msg.setHeader("Content-Transfer-Encoding", "7bit"); 問題点: getBytesでISO-2022-JP範囲外文字(いわゆる機種依存文字)すべて?に 置き返されます。 送信メールに、(1)(株)といった機種依存文字、NEC拡張外字が入っている 場合、文字が化けます。 ネットで得た対策方法について、以下方法が試しました。 対策1: Javaの起動オプション-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP付ける こちらのオプションがoracle者のJVMの有効で、現在のシステムがIBMのJVMを使用して いるので、効かないです。 対策2: 本文がshift-jisにする手もありますが、APPLE社のMAC、iphone端末で、同様に 機種依存文字が化けます。 対策3: String honbun = new String(honbun_DB.getBytes("ISO-2022-JP"),"ISO-2022-JP") の代わりに、getBytes()使用せずに、独自のCP943Cの文字コードからISO-2022-JP の文字コードに変換するロジックを組むという提案(機種依存文字でも、getBytes()みたいの ?に置き換えではなく、JIS範囲コードに変換)もあった。品質の懸念があるため、採用難しいところ。 上記対策1,2、3以外の方法があれば、教えていただけると助かります。 例えば対策3の機種依存文字か、ISO-2022-JP範囲内文字か、すべてJISコードに変換できる ライブラリなど 長文となって申し訳ありません。
- 締切済み
- SE・インフラ・Webエンジニア
- javamailにてメール文字化け
javamailにて文字コードutf-8にてメール配信ソフトを作ってみたのですが、私の使っているモバイル nexus7のフリーメールに受信成功したのだが、文字化けしてしまいました。nezus7のメールソフトの エンコードがutf-8でないからだと判断。javamailの文字コードを途中でutf-8から該当しそうな(iso-2022-jpなど)にデコードしてから送信。しかし文字化けが治らず挫折してしまいました。utf-8なら 対応していると思ったのですが…。nexusの文字コードをどのように取得することができるかどなたかわかる方ご教授の程宜しくお願い申し上げます。 尚、content = new String(content.getBytes("utf-8"),"");""の部分にnexus7の文字コードに該当しそうな文字コードを数種類入れて実験!?してみました。どれも失敗。
- ベストアンサー
- Java
- iモードの絵文字16進数の正規表現について
iモードの絵文字をフォームから送信された時の処理をperlでしています。 具体的にはフォーム内容をデコードする前に、文章に絵文字が含まれているか16進数の状態でチェックします。含まれていれば、それらを10進数表記に変え、データとして保存しています。 ここまでは上手くいったのですが、問題が発生しました。 iモードからはShift_JISでデータが送信されてきますが、このデータの中に2バイト目の文字コードが絵文字の1バイト目の文字コードと同じであり、かつその次の文字の1バイト目が絵文字の2バイト目と同じだった場合に間違ってその文字を絵文字として処理してしまいます。 つまりある2文字の2バイト目と1バイト目が偶然絵文字と同じ文字コードだった場合に絵文字として取り扱ってしまうのです。(例:滲滲) これを防ぐ方法が解る方がいらっしゃればご回答下さいm(_ _)m ※perlメモの「ただしくパターンマッチさせる」をShift_JISに変えてやってみましたが、うまくいきませんでした。。。
- ベストアンサー
- Perl
- iモードのちゃっとで絵文字を・・・
iモードのチャットにいって絵文字が文字化けしない方法&絵文字が使えるようにダウンロードでフォントを手にいれる方法&使用できる方法をどうか教えてください!
- 締切済み
- Mac
- 題名が化ける(本文は読める)
タイトルの様に、 題名が化ける 本文は読める ・・・メイルを受け取っています。 日本語での、 アメリカからのメイルマガジンです。 ISO-2022-JP で送られてきます。 HTML形式です。 Content-Type: text/plain; charset="iso-2022-jp" Content-transfer-encoding: 8bit ・・・となっていますが、 どうして、8bit ? と思っています。 Encodingを、 Shift_JIS にすると、 題名は、見られますが、 本文が、化けます。 ISO-2022-JP にすると、 題名が化けますが、 本文が読めます。 どの様なMUAを使っているか、問い合わせていますが、 題名が、Shift_JIS 本文が、ISO-2022-JP ・・・の設定はあるのでしょうか? これを、統一すれば、化けないと思うのですが。
- 締切済み
- その他(メールサービス・ソフト)
- 文字コードについて教えてください。
ホームページを作成するときに指定する文字コードをどうしたらいいのか迷っています。 ウインドウズ環境でホームページを作る際、入力された文字は秀丸などの特別なソフトを使わなければ自動的にShift JISコードになると思うのですが、この場合、タグを <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> と指定するべきでしょうか?それとも、 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp"> と指定するべきでしょうか? ISO-2022-JPで指定した場合、ブラウザが必ずしも自動判別してくれないこともあるのでしょうか? また、CGIスクリプトはShift JISで入力するとエラーを起こすことがあると聞いたことがあります。 ホームページを作成する場合には、常にISO-2022-JPかEUCの文字コードで作成するようにしたほうがいいのでしょうか? いろいろ検索して調べてみたのですが、どうもよくわかりません。宜しく御願いします。 なお、gooのホームページを閲覧するときも頻繁に文字化けしています(文字コードがEUCに指定されていないのはなぜでしょうか?)。
- 締切済み
- その他(インターネット・Webサービス)
- AppleMail 文字化けについて
MacOSX 10.4.11を使っています。 AppleMailで送信していて、文字化けをするという事をよく言われたので文字化けをしない様にエンコーディングをISO-2022-jpに変更しました。 変更は様々なサイトで提供されているやり方 1.デフォルトのエンコーディングを“UTF-8”エンコーディングから“ISO-2022-JP”エンコーディングに設定 方法: 1.「ターミナル」(/アプリケーション/ユーティリティ/)を開きます。 2. プロンプトの後に次のコマンドを入力します。 defaults write com.apple.mail NSPreferredMailCharset "ISO-2022-JP" 3. コマンドの入力後、「Return」キーを押します。 4.「ターミナル」を終了します。 を参考にしました。 ですが、どうしてか文字化けが治りません。 Thunderbird3で確認してみたところ、タイトルは普通に見えるのですが、本文が文字化けをしています。 エンコーディングはSHIFT-JISになっているのですが、再度Shift-JISを選択すると、今度は本文が見える様になってタイトルが文字化けをします。 思うにタイトルと本文のエンコーディングが違うのかと思いいろいろエンコーディングを変えたら、タイトルはISO-2022-jpで本文がShiftJISで送られている様に思います。 何か解決方法があれば教えて頂きたいと思います。 よろしくお願いします。
- ベストアンサー
- Mac
- Gmailへのメール送信で文字化け
PHPでフォームメールの作っているのですが、Gmailで送信したメールを受け取ると□□□□□というように文字化けが起こっていまいます。 アウトルック、ホットメールなどは大丈夫なのですが、グーグルのGmailだけ駄目なようです。なぜ文字化けするのでしょうか? mb_language("Ja"); $header = "From: reminder@aaa.com\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/plain;charset=ISO-2022-JP\r\n"; $header .= "Content-Transfer-Encoding: base64"; $to = "aaa@gmail.com"; $subject = "送信テスト"; $body = "本文テスト本文テスト"; $subject = base64_encode($subject); $subject = mb_convert_encoding($subject,"ISO-2022-JP"); $subject = "=?ISO-2022-JP?B?" . $subject . "=?="; $body = base64_encode($body); $body = mb_convert_encoding($body,"ISO-2022-JP"); $success = @mail($to,$subject,$body,$header); if($success) print "成功"; else print "失敗";
- ベストアンサー
- PHP
- DOCOMO(i-mode)の絵文字を認識する方法あります?
当たり前ですが,携帯電話の絵文字はキャリアごとにことなってますよね. で,たとえばDocomo → J-phoneと送信すると文字化け してしまいます. この文字化けしたものを,「元がなんだったか」送信者に確認することなく推測することって可能でしょうか? Docomoの絵文字のコード一覧は入手したのですが... いい方法ありますでしょうか?それとも無理っすか?
- ベストアンサー
- その他(スマートフォン・携帯・タブレット)