• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームデータの読み込みについて)

フォームデータの読み込みについて

このQ&Aのポイント
  • 現在CGIでデータベースを作成しています。データはCSVで保存し、検索するとCSVのデータを読み込むようになっています。
  • 基本的に検索は問題なくできるのですが、「Ö,Ä,Å」を含む情報を大文字で検索した場合に値を求めない問題が生じています。小文字の「ö,ä,å」を含む情報は問題なく検索できます。
  • フォームデータのデコードに問題があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

読み込むとき、というかPerlが実行されているときの環境です。 perlre というドキュメントを見ると i Do case-insensitive pattern matching. If "use locale" is in effect, the case map is taken from the current locale. See perllocale. とありますから、通常はアクセント記号つき文字は大小文字無視の対象になりません。 で、localeを有効にするには use localeすればよいです。 NAME locale - Perl pragma to use and avoid POSIX locales for built-in operations SYNOPSIS @x = sort @y; # ASCII sorting order { use locale; @x = sort @y; # Locale-defined sorting order } @x = sort @y; # ASCII sorting order again DESCRIPTION This pragma tells the compiler to enable (or disable) the use of POSIX locales for built-in operations (LC_CTYPE for regular expressions, and LC_COLLATE for string comparison). Each "use locale" or "no locale" affects statements to the end of the enclosing BLOCK. See perllocale for more detailed information on how Perl supports locales. もし環境変数とは関係なく設定したいのなら、perllocale にあるように # Import locale-handling tool set from POSIX module. # This example uses: setlocale -- the function call # LC_CTYPE -- explained below use POSIX qw(locale_h); # query and save the old locale $old_locale = setlocale(LC_CTYPE); setlocale(LC_CTYPE, "fr_CA.ISO8859-1"); # LC_CTYPE now in locale "French, Canada, codeset ISO 8859-1" setlocale(LC_CTYPE, ""); # LC_CTYPE now reset to default defined by LC_ALL/LC_CTYPE/LANG # environment variables. See below for documentation. のようにします。 とはいえ自分では use localeしたことってほとんどないので 実際にどうなるかはよくわかりません。 ドキュメントを読む限りではそれでいいと思うのですが。

goju_FFF
質問者

お礼

ご助言有難うございました。 やはりロケールの問題でしたね。 もう少しuse localeを勉強してから 問題を解決して以降と思います。 言語問題は厄介ですね。 では、重ねてご返答有難うございました。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

カギカッコ内の文字が化けてます。 たぶん、ローマ数字か何かだと思うのですがどうですか? /i で大小文字を無視するのは、基本的にラテンアルファベットだけです。 #アクセント記号の文字はどうだったか自信がない

goju_FFF
質問者

補足

失礼しました。また、ご返答有難うございました。 文字化けしていたのはウムラウト文字です。 o,aにウムラウトがついたものです。 これは、フォームデータの読み込みの際のロケールと 関連がある問題ですか? よろしかったら教えてください。

関連するQ&A

専門家に質問してみよう