Tips

LAUNCH EXTERNAL PROCESSで日本語を扱う

日付2009/04/15
ID09-032
バージョン11
プラットフォームWin & Mac

LAUNCH EXTERNAL PROCESSで日本語を扱う時、LAUNCH EXTERNAL PROCESSで呼び出すOSのコマンドが、どの文字セット(キャラクターセット)を使って会話するかを知らなければなりません。もしコマンドがUTF-16を使っているのであれば、4Dのテキスト型変数をそのままLAUNCH EXTERNAL PROCESSに渡して処理することができます。しかし多くの場合、アプリケーション間の会話はUTF-8で行うことになりますし、Windowsの場合にはShift JISかもしれません。

文字セットがUTF-16でないような場合、LAUNCH EXTERNAL PROCESSのストリームにBLOB型変数を使わなければなりません。一旦BLOB型変数で受け取り、これをConvert to textなどを使ってテキスト型変数に戻す際に、UTF-8→UTF-16変換を行います。これで日本語も問題ありません。

外部コマンドとの会話や通信では、常に文字セットについて意識したプログラムしなければなりません。また、Convert to textコマンドをはじめ、文字コードの変換では変換ライブラリによる変換失敗(エラー)についても配慮したプログラムが必要になることもあるでしょう。

参考:RECEIVE PACKETのエラー