Re: ワイド文字のAPI2005年10月24日 19時57分40秒

Perl + Win32 環境で

${^WIDE_SYSTEM_CALLS} = 1;

とすると、ワイド文字の API (Unicode 版 Win32 API)を使います。

File::Find でも CP932の第二バイトが 0x5c の文字で終わるディレクトリも扱えますし、-f や -d も問題なく動作します。 (こっちは確認済み)

Win32 の $CodingSystem は全世界共通で UTF-8 として扱えば良いということになります。

この時、ディレクトリ名、ファイル名は UTF-8 になるという点だけは気にしなければなりません。
UTF-8 版 Namazu との親和性は高いと思います。

コメント

_ 通りすがり ― 2005年10月24日 23時56分35秒

ええと、MSVCRTのワイド文字API及びWin32のUnicode系APIってWin 9x系ではサポートされていないというかまともに動作しないと記憶しているんですけど。

_ opengl2772 ― 2005年10月25日 07時20分39秒

ご指摘のように Windows 95/98/Me では Unicode をサポートしていないため、ワイド文字の API は実質使用できません。
ただ、Windows 95/98/Me のリリースからかなりの時間が過ぎ、Namazu 2.2系やそれ以降ではサポートを打ち切っても良いだろうと思っています。
しかし、それ以前に別の問題が見つかりました。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2005/10/24/118936/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。

_ ナマズのブログ - 2005年10月25日 07時25分05秒

perlrun の -C を見ると

(In Perls earlier than 5.8.1 the -C switch was a Win32-only switch that enabled the use of Unicode-aware ``wide system call'' Win32 APIs. This feature was practically unused, however, and the command line switch was the