タグ

ブックマーク / digit.que.ne.jp (2)

  • Perlメモ/Windowsでのファイルパス - Walrus, Digit.

    シフトJIS、バックスラッシュ区切りのWindowsでのファイルパスに関する話題。 しばしば文字化けの原因などとして話題になる「2バイト目にバックスラッシュ(\x5C)が含まれる文字がある」ことについて、ファイルパスの扱いでもトラブルの原因になることがあるようです。 例えば、「機能」というファイル/ディレクトリ名があるとすると、これは「能」という文字の2バイト目が\x5Cです。 いくつかのコマンドは、これをうまく処理できません。 Windows XP上のActive Perl 5.8.4(ビルド810)で実験しました。 以下は期待通りの動きをしなかった事項です。 「機能」があるディレクトリで、glob('./*')をしても、「機能」が返り値に含まれない 「機能」という文字列を変数$_に入れ、opendir(DIR, $_)としても「機能」ディレクトリを開けない 「機能」という文字列を変数$

    yuriap
    yuriap 2010/03/26
  • Perlメモ/日本語の扱い - Walrus, Digit.

    Perlで日語を使用するとき、正しく動かなくなる代表的なケースは次の2点です。 日語を扱う時、文字コードを意識していない。 正規表現で、日語の文字列を使うとエラーが出る。 日語を扱う時には、文字コードを意識する必要があります。 代表的な文字コードには「7ビットJIS」「SJIS(シフトJIS)」「EUC(日語EUC)」「UTF8(Unicode)」があります。 厄介なのは、同じ言葉でも、文字コードによってコンピューター内部での表現が違うことです。 例えば、WebブラウザからSJISで送られてきた「塚」という言葉と、EUCコードのスクリプト中で設定した「塚」という言葉を比較すると「別物だよ」という結果が出ます。 こうした問題が起きないように、普通は、以下のことに気をつけてスクリプトを作ります。 スクリプトを書くときに、どの文字コードを使うか決めておく。 データの入出力(CGIの

  • 1