[index.html]
▼CoffeeMaker開発記▼
■その5・テキストの文字コード情報の変更と保存について■

●世界には様々な言語があり、その言語を表す文字も多くの種類が存在します。 日本語については、JISShift-JIS日本語EUCと文字コードの代表的な物に3種類の文字コードが存在し、それぞれが独立したアドレスで配置しているため、例えばShift-JISを採用しているWindows9X系と、EUCを採用しているUNIX系のOSでは相互に標準的なテキストエディタでは読むことができないわけです。[参考]

Javaでは表示する文字コードにUnicodeを採用しているのですが、実際の所、一般に存在するテキストは日本語のファイルだけでも上記の3種類が存在するため、それぞれのOS上のアプリケーションで作成されたファイルを読み込めるようになっています。

通常、テキストファイルの保存形式に何も付け加えないwrite()やread()の場合、保存(読込)される文字コードはそれぞれのOSのデフォルトの文字コードになります。
(処理の詳細はJTextAreaIO#saveDialog()等を参照のこと)
しかし、InputStreamReaderやOutputStreamWriterの読込・書き込みストリームを間に入れる事により、ファイルの形式を指定することができます。
(こちらの詳細はJTextAreaIO#saveUTF8Dialog()等)

今回のバージョンでは汎用的なUnicode文字コードのUTF8の入出力を簡易的にサポートしました。この文字コード形式のサポートは今後のバージョンアップの際に、いろいろな機能追加をする場合、データファイルを一元的に管理することが可能になるかと思います
(例・テンプレートを作成する際、OSやロケーション毎にファイルを保存し直す等の手間が削減する)

●文字コードに関しての知識●

  • Mac、Windows9X系、NT…Shift-JIS
  • UNIX系…日本語EUC
  • Windows2000…Unicode (UCS2)
  • Java…内部的にはUnicode(UCS2) 外部とはデフォルトの文字コードが自動で設定され、特に指定しない場合、それが使用される