($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
AS/400 の MBCS について T.K さん [ 4月27日(水) 16時58分 ]
お世話になっております。

業務システム開発でSystemiを使用しております。

今回、日本語と中国語の環境で動く仕組みを開発しております。

その機能の開始が、外部I/FデータをIFSにおいてもらって、
これをCPYFRMIMPFで取り込むことから始まります。

I/FデータはUTF-8で作成していただくように
ユーザー側へお願いしてあるのですが、ユーザー様より
「日本語、中国語で3バイト文字セットは存在するか」
という質問を受けました。

I/Fデータを作成する際に、UTF-8からEBCDICへの変換結果の
フィールドの長さが、こちらの提示したフォーマットのフィールド長に
収まるかどうかを事前にチェックしたいから、という理由です。

AS/400で3バイト以上からなる文字セットについて聞いたことも
意識したこともなかったものですから、ハッキリとした回答を
返すことができません。

どなたか回答やヒントをお持ちの方がいらしたらよろしくお願いいたします。

RE:AS/400 の MBCS について すかぴ さん [ 4月27日(水) 17時49分 ]
当方、タイ語をAS/400で少し扱いました。
タイ語は特殊で、1文字を構成するのに4バイト分使用したりと、
1バイトからnバイトの文字で構成されているようです。

中国語に関しては、DBCS環境になると思いますので、2バイト文字で良いと思われます。
RE:AS/400 の MBCS について T.K さん [ 4月27日(水) 18時55分 ]
> 当方、タイ語をAS/400で少し扱いました。
> タイ語は特殊で、1文字を構成するのに4バイト分使用したりと、
> 1バイトからnバイトの文字で構成されているようです。
> 
> 中国語に関しては、DBCS環境になると思いますので、2バイト文字で良いと思われます。
> 


すかぴ さん 早速のご回答ありがとうございます。
当方でもご回答の内容をもう少し理解してお客様へ回答したいと思います。

ありがとうございました。
RE:AS/400 の MBCS について IKD さん [ 4月28日(木) 6時54分 ]
IBM i には 3バイト文字セットは存在しません。
この質問をされたのは UTFの漢字が 3バイトであるためであろうと
予想されます。

都市伝説としてIBMのアナウンス・レターの翻訳が適切でなかったために
CCSID 1399 は UTF であると信じている人や個人サイトで発表されてたりもしますが
これは全くの誤りです。
UTF-16 は英文字でも 2バイト、漢字は 3バイトであり
UTF-8 は英小文字が 1バイト、漢字はやはり 3バイトです。
EBCDIC と互換があるはずがないのですが特約店のSE が 1399 は ユニコードです、と
説明する例があまりにも多いのはIBM 発表レターの翻訳に誤りがあったせいで
このちがいがわかれば UTF が IBM i に存在しえないことはわかるはずなのですが。

CCSID 1399 とは 5035 + NEC漢字のセットです。
UTF とは何の関係もありません。

IBM i に存在している漢字はEBCDICですから 2バイト・セットしかありません。
お馴染みのAPI: QDCXLATE では EBCDIC/UTF 変換はできません。
UNIX API: iconv が必要です。

参考URL

 http://www.as400-net.com/tips/database/28.html
RE:AS/400 の MBCS について T.K さん [ 5月9日(月) 19時5分 ]
> IBM i には 3バイト文字セットは存在しません。
> この質問をされたのは UTFの漢字が 3バイトであるためであろうと
> 予想されます。
> 
> 都市伝説としてIBMのアナウンス・レターの翻訳が適切でなかったために
> CCSID 1399 は UTF であると信じている人や個人サイトで発表されてたりもしますが
> これは全くの誤りです。
> UTF-16 は英文字でも 2バイト、漢字は 3バイトであり
> UTF-8 は英小文字が 1バイト、漢字はやはり 3バイトです。
> EBCDIC と互換があるはずがないのですが特約店のSE が 1399 は ユニコードです、と
> 説明する例があまりにも多いのはIBM 発表レターの翻訳に誤りがあったせいで
> このちがいがわかれば UTF が IBM i に存在しえないことはわかるはずなのですが。
> 
> CCSID 1399 とは 5035 + NEC漢字のセットです。
> UTF とは何の関係もありません。
> 
> IBM i に存在している漢字はEBCDICですから 2バイト・セットしかありません。
> お馴染みのAPI: QDCXLATE では EBCDIC/UTF 変換はできません。
> UNIX API: iconv が必要です。
> 
> 参考URL
> 
>  http://www.as400-net.com/tips/database/28.html

返信が大変遅くなり申し訳ありません。

丁寧な語説明をありがとうございました。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目