ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(埋込みSQL編)

3.1.5 日本語文字使用時の注意事項

ここでは、アプリケーション中に日本語文字を使用する方法について説明します。

ホスト変数の長さ

シフトJISコードの場合

シフトJISコードの日本語文字を使用する場合、各国語文字列型のデータをデータベースから取得、またはデータベースに格納する場合、日本語文字は2バイトとなります。このため、ホスト変数の長さは、以下のように算出してください。

ホスト変数の長さ = 日本語文字数 * 2バイト + 1
EUCコードの場合

EUCコードの日本語文字を使用する場合は、日本語文字に3バイトの拡張漢字または利用者定義文字を含む可能性があります。このため、ホスト変数の長さは、格納に十分な大きさを考慮して以下のように算出してください。

ホスト変数の長さ = 日本語文字数 * 3バイト + 1
UTF-8形式の場合

UTF-8形式の日本語文字を使用する場合は、日本語文字コードは2~6バイトとなります。

ホスト変数の長さ = 日本語文字数 * 6バイト + 1

SQL記述子域のオクテット長

動的SQLを使用して、各国語文字列型のデータをデータベースから取得する場合、SQL記述子域のオクテット長(バイト数)は、以下のようになります。

シフトJISコードの場合

シフトJISコードの日本語文字を使用する場合は、1文字を2バイトに換算した値となります。

EUCコードの場合

EUCコードの日本語文字を使用する場合は、取得するデータが2バイト表現の日本語文字か3バイト表現の日本語文字かにかかわらず、SQL記述子域のオクテット長(バイト数)は、1文字を3バイトに換算した値となります。

UTF-8形式の場合

UTF-8形式の日本語文字を使用する場合は、1文字を6バイトに換算した値となります。

切捨ておよび補正

データベース中の日本語文字の長さは2バイトです。これに対してEUCコードおよびUTF-8形式の日本語文字を使用する場合、ホスト変数の長さは、EUCコードは3バイトであり、UTF-8形式は6バイトです。このため、ホスト変数の使用に際して、以下の留意事項があります。

ホスト変数に設定する値の補正

ホスト変数にEUCコードまたはUTF-8形式の日本語文字を設定してデータベースにデータを格納する場合、ホスト変数に設定する日本語文字列の長さがホスト変数の長さよりも短い場合は、有効文字列以外の領域には、英数字の空白を設定してください。なお、日本語の空白は、有効な文字列とみなします。

ホスト変数に設定される値の切捨ておよび補正

データベースから取り出したEUCコードまたはUTF-8形式の日本語文字をホスト変数に格納する場合、自動的に切捨ておよび補正が行われます。

切捨て

ホスト変数に格納される日本語文字の長さがホスト変数の長さよりも長い場合は、格納可能な文字数のみ格納し、残りは切り捨てられます。

補正

ホスト変数に格納される日本語文字の長さがホスト変数の長さよりも短い場合は、有効な文字列以外の領域には英数字の空白が設定されます。