システム開発ブログ/ 産業システム部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

JavaのShift_JISの扱いにはご注意を!!

小原
小原 (2010年2月16日 18:37)
産業システム部 / JAVA

7,8年前にjavaで構築されたWindowsのWEBアプリケーションを機能追加改修後、
新サーバにリプレイスするという案件に携わりました。

その際にShift_JISの文字コードの扱い方についてハマったので
ここでご紹介したいと思います。


アプリの改修作業中に、ふと気付いたのですが、
機種依存文字が?で表示(文字化け)していました。

Windowsの機種依存文字による文字化けが起きる可能性として考えられるのは、
エンコーディングがWindows-31Jで行なわれていないことが原因として挙げられるため、
今回もエンコーディングの指定が間違っているのだと考えていました。

調査したところやはり、エンコーディングの指定がShift_JISとなっており、
Windows-31jではありませんでした。

そこで、昔から文字化けが起きているのだろうと思い、
旧サーバにて確認をしたところ、
予想とは異なり、旧サーバでは機種依存文字が正常に表示されていました。

この問題に気付いた当初、旧サーバと新サーバにて、
何故そのような違いがでるのか理解できず、頭をかかえていました。


しばらくして、いろいろと調査したところ、
JavaにおいてShift_JISは、バージョンの違いによって、
扱い方が変わるということを知りました。

Shift_JISは、
・JDK 1.2~1.4.0 では、Windows-31Jとして扱われる
・JDK 1.4.1 以降では、Shift_JISとして扱われる
とのこと。

旧サーバ・新サーバのJDKのバージョンを調べたところ、
旧サーバのバージョンは、JDK 1.3、
新サーバのバージョンは、JDK 1.6でした。

上記理由により、旧サーバでは機種依存文字が正常に表示されていたが、
新サーバでは正常に表示できなかったようです。

新サーバのエンコーディングの設定を
Windows-31Jに設定したところ、
機種依存文字は文字化けせず正常に表示させることが
できました。

今回は知っていればすぐに解決できるような問題に、
随分と悩み、時間をかけてしまいました。

今後、Javaに関わらず実行環境のバージョンの違いというものについてより意識したいと思います。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。