Open棟梁 wiki
目次 †
概要 †
システム内部で使用する文字コードとエンコーディングを考慮する。
- .NET、Javaなどのプログラム中の文字列はUTF-16で扱われる。
- 外部には既定でUTF-8でエンコーディングされた後に出力される。
考え方 †
- 入出力時のエンコーディングの問題は、Unicode → Unicodeでエンコーディングしないのであれば、JIS 2004 固有の文字も問題なくデータ連携できる。
- データ転送時のエンコーディングは、クライアント、プロトコル、ライブラリ、サーバなどの仕様や設定による。
- データ転送時に、エンコーディングが発生するのなら、転送後のデータが文字化けしないか、事前にチェックする。
- Windowsの外字(機種依存文字)などは、他の環境でエンコーディングされると文字化けが起きるので注意する。
文字コード †
- 従来のVB6.0などの標準GUIコントロールはUnicodeに対応しておらずShift-JISでの入力が一般的であったが、
既にWWWブラウザやWindows Formsなど殆どのアプリケーションでUnicode対応がなされ、Unicodeでの入力が一般的になっている。
- このため、システムで利用可能なキャラクタセットは、Unicodeで利用可能なキャラクタセットとすることが一般的である。
- 例外的にShift-JISのWebサイトも存在するが、WWWブラウザがUnicodeにのみ存在する文字を数値参照に
自動変換するという動きが問題となることがあるため、こちらもUnicodeが一般的である。
- 例えば、「鱓」は、
- POST時にWWWブラウザにより数値文字列参照(鱓)に変換される。
- HTTPリクエスト エンティティ ボディでは「%26%2340415%3B」になる。
- APサーバ HTTPリクエスト Formコレクションでは再び数値文字列参照(鱓)になる。
エンコーディング †
文字コードが異なる「ファイル ⇔ システム」、「システム ⇔ システム」間では、エンコーディングが必要になる。
- エンコーディングにより文字化けが発生するかどうかを「文字セット、文字エンコーディングの可逆変換性チェック」部品でチェックできる。
- この機能は、エンコード ~ デコードの処理をすべて自システム内で実行する場合にのみ保障される。
キャラクタセット †
- 外字・機種依存文字を使用する際には注意する。通常、外部システムから入力された外字・機種依存文字は、システム保証外のとなる。
- また、Vista / 2008でサポートされたJIS2004がサポートされない環境では、これらの文字を外字・機種依存文字と同様に扱う必要がある。
- JIS X 0212(非漢字、補助漢字)、JIS X 0213(非漢字、第1~第4水準漢字)、JIS2004(JIS X 0213:2004)をサポートする場合は、以下考慮が必要である。
システム連携時、相互変換可能かをチェックする。 †
システム連携時、相互変換が可能かどうか、”Open棟梁”に付属する「コードページの可逆エンコード・チェック部品」を活用する。
JIS X 0208(非漢字、第1、第2水準漢字)以外をチェックする。 †
相互変換が不可能な場合、”Open棟梁”に付属する「JIS X 0208-1983文字コード範囲チェック部品」を活用する。
JIS2004をチェックして除外する場合。 †
クライアント側でJIS2004表示が不可能な場合、”Open棟梁”に付属する「JIS2004チェック部品」を活用する。
システム内部でJIS2004を扱う場合。 †
4バイト文字が存在するため、文字列操作を行う際は必要に応じてStringInfo?クラスを利用する。
参考 †