現在のプロセスのファイル I/O 関数群に ANSI 文字集合コードページを使わせる。
SetFileApisToANSI
(プラグイン / モジュール : kernel32.dll)
現在のプロセスのファイル I/O 関数群に ANSI 文字集合コードページを使わせる。 [備考] SetFileApisToANSI がコードページを設定するファイル I/O 関数とは、KERNEL32.DLL がエクスポートするファイル名を受け取る/返す関数群である。SetFileApisToANSI はプロセス単位でコードページを設定する (スレッド単位でもコンピュータ単位でもない)。SetFileApisToANSI は、同じファイル I/O 関数群に OEM 文字集合コードページを使わせる SetFileApisToOEM 関数を補完する。8 ビットコンソール関数は既定で OEM コードページ、それ以外の関数は既定で ANSI コードページを使用する。このためコンソール関数が返す文字列は他の関数で正しく処理されない場合があり、逆もまた然りである。例えば FindFirstFileA がある種の拡張 ANSI 文字を含む文字列を返し、8 ビットコンソール関数が OEM コードページを使う設定の場合、WriteConsoleA は文字列を正しく表示しない。現在ファイル I/O 関数群がどのコードページを使っているかを判定するには AreFileApisANSI 関数を使う。8 ビットコンソール関数のコードページを設定するには SetConsoleCP と SetConsoleOutputCP を使う。コードページ非互換問題を解決するには、コンソールアプリケーションで Unicode を使用するのが最善である。そうでない場合、コンソールアプリケーションは SetFileApisToOEM を呼び出してファイル I/O 関数群に OEM 文字集合を使わせることができる。元に戻すには SetFileApisToANSI を呼ぶ。コマンドラインを扱う際、コンソールアプリケーションはコマンドラインを Unicode 形式で取得し、関連する文字→OEM 関数で OEM 形式に変換すべきである。またこの場合、コマンドライン main 関数の argv 配列は ANSI 文字集合の文字列を含むことにも注意。Windows 8 および Windows Server 2012 では、この関数は以下の技術によってサポートされている。 (以下省略)
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |