文字コード/iconv/InnoTek_LIBC

文字コード/iconv/InnoTek_LIBC

Innotek LIBC における iconv*() の実装

ソースリポジトリ:
branches/libc-0.6/src/emx/src/lib/locale/iconv.c
trunk/libc/src/libc/locale/os2/iconv.c

基本的に OS/2 標準の Unicode API (UCONV.DLL) におまかせ。

ちなみに __libc_TranslateCodepage は同じディレクトリの __convcp.c 内(branches/libc06/trunk)] …ちょ、これって日本語エイリアスは EUC-JP しかねえの? SHIFT-JIS は? (UCONV 側でどうにかしてくれるんだっけ? あとで確認しないと…)
→ UCONV には SJIS-1, SJIS-2 のエイリアスがある(IBM-943)。しかし SJIS はない。

重要な注意: CVTTYPE_PATH が意図的に解除されているため、日本語コードページのディレクトリセパレータが(バックスラッシュでなく)円記号としてとして認識される。ディレクトリセパレータを含む文字列を CP932 からそれ以外のコードページに変換した場合(あるいはその逆も)、そのパス名は(日本語固有の文字が含まれていない場合でも)正しく扱えなくなる可能性が大きい。