Open棟梁 wiki

目次

概要

システム内部で使用する文字コードとエンコーディングを考慮する。

考慮のための洗い出し例

文字コードとエンコーディング

考え方

文字コード

エンコーディング

文字コードが異なる「ファイル ⇔ システム」、「システム ⇔ システム」間では、エンコーディングが必要になる。

キャラクタセット

数値参照

WWWブラウザの自動変換

HTMLの文字コード指定がShift-JISになっている場合、HTTPのPOSTのエンコーディングがShift-JISになる。

この際、Shift-JISで表現できない文字は数値参照型 に変換される。

現状の開発技術(Java、.NET)では、これらの文字の、数値文字参照のサーバ側での自動デコードをサポートしていないので、
上記の「鱓」というデータが、数値文字参照のままの文字でサーバ側のプログラムに渡され、
さらに、サーバ側のプログラムがXSS対策でサニタイジングHTMLエンコーディングしてHTMLに出力するので、
2重エンコードで「鱓」という値で出力され、文字化けに繋がる。

例えば

「鱓」は、

チェック

システム連携時、相互変換可能かをチェックする。

システム連携時、相互変換が可能かどうか、”Open棟梁”に付属する「コードページの可逆エンコード・チェック部品」を活用して確認する。

JIS X 0208(非漢字、第1、第2水準漢字)以外をチェックする。

相互変換が不可能な場合、”Open棟梁”に付属する「JIS X 0208-1983文字コード範囲チェック部品」を活用して入力チェックする。

JIS2004をチェックして除外する場合。

クライアント側でJIS2004表示が不可能な場合、”Open棟梁”に付属する「JIS2004チェック部品」を活用して入力チェックする。

システム内部でJIS2004を扱う場合。

4バイト文字が存在するため、文字列操作を行う際は必要に応じてStringInfo?クラスを利用する。

参考


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS