文字コードの問題に正しく対応する前提として,アプリケーションが稼働する基盤ソフトウエアがマルチバイト文字列処理に対応している必要がある。特に問題となるのが,言語処理系とデータベース管理システム(DBMS)である。利用者の使い方が正しくない場合も,ぜい弱性が混入することがある。このため,今回は主要言語とデータベース(MySQLとMS SQL Server)のマルチバイト文字対応状況について説明する。 文字列の処理単位は文字単位かバイト単位か Webアプリケーション開発で人気のあるスクリプト言語の多くは,かつては文字列をバイト単位で扱っているものが多かった。以下のPerlスクリプトは“漢字”という文字列の長さを表示するものだが,ソースの文字エンコーディングによって結果が変わる。具体的には,Shift_JISやEUC-JPの場合は4,UTF-8の場合は6と表示される。原因は,このスクリプトが文字