「JAVAおよびPL/SQLでのメールの文字化けについて」
覚え書き
未だに文字コードの変換ロジックを理解できない私ですが
いままで解決できなかった、JAVAでのメールのさい、特殊文字の文字化けが回避できたので、覚書として書いておこうと思います
※
この記事は読み飛ばしてくださいね!
文字コードの世界はshift_jis,EUC,unicode・・・
たくさんのコード体系があり、異種機能同士やり取りする場合、逃げては通れない世界です
サーバがwindowsであったり、UNIXであったり
また、クライアント(パソコン)がwindoesであったりMACであったり
またまた、ブラウザはIEであったり、ネスケであったり
機種依存は限りない
全てOKにするには特殊文字を無効にするしかないが、逆に環境が固定であれば可能
ちなみにサーバはWindows 2000、クライアントはWindows 2000, XP、ブラウザはIE 5.5以上という条件で
いままでキャラクターセットをiso-2022-jpをshift_jisにすることで文字化けは回避できました
ただし、Subjectのみは一部の文字のコード変換が必要でした
下記のテーブルを作成することで回避
private static char[][] UnicodeCnvJis =
{
{ 0xffe3, ' ̄'},
{ 0x2014, '―'},
{ 0x2015, '―'},
{ 0xff3c, '\'},
{ 0xff5e, '〜'},
{ 0x2225, '‖'},
{ 0xff0d, '−'},
{ 0x00a5, '¥'},
{ 0xffe0, '¢'},
{ 0xffe1, '£'},
{ 0xffe2, '¬'}
};
あくまでも環境を固定した場合です
なおSDK1.3でキャラクターセットはshift_jisです
またORACLE 8.1.7での環境でUTL_SMTPプロシジャーでも同様のことがコード変換(CONVERT)の文字コードタイプの指定をISO2022-JPをJA16SJISにし、Content-Typeのiso-2022-jをshift_jisを指定することで解決しました。

0