• 締切済み

検索できる文字とできない文字

PostgreSQLでデータベースを構築している初心者です. 現在ブラウザから文字を入力し検索をかけることで, 検索結果を表示するプログラムを作っているのですが, その際に検索できる文字とできない文字があり困惑しています. 例えば,「医学」と入力するとデータベースからデータがブラウザに表示 されるのですが,「秋山浩二」と入力するとデータはあるのに 表示されないという状況に陥っています.他にも検索できる文字 とできない文字があり,なぜこうなってしまうのか分かりません. このようなことは何かの設定ミスにより起こりうることなのでしょうか. 何かお気づきの方がいらっしゃいましたら,ご教授をお願いします. 【環境】 Windows XP PostgreSQL8.0.4

みんなの回答

  • darkside
  • ベストアンサー率53% (8/15)
回答No.1

私はLinuxでeuc-jpを使っているので推測ですが。 Windows XPということは、ひょっとして DBの文字コードか何かでシフトJISを使っていて それが原因かもと思います。というのは秋山浩二の浩 という字はシフトJISで0x8D5Fであり、0x5Fは半角下線 (_)に相当します。そして半角下線はSQLのLIKE句において 任意の1字をあらわすワイルドカードになっているためです。 適切に設定されていれば、日本語文字の一部と判定されるべき 浩の字が、何らかの文字コードがらみの設定違いで、8D + 5Fという 2文字と判定され、結果、5Fがワイルドカードであると 誤判定されるなどして起こるのだと思います。 従って、文字コード関係の設定を洗ってみてはどうでしょうか。

k-masa1
質問者

お礼

自己解決しました.select … where like '%秋山浩二%'というようにSQL文を作ればいいみたいです. 以前同じような質問があったみたいで,情報収集不足でした.お騒がせしました.

k-masa1
質問者

補足

文字コードを洗ってみましたが中々設定ミスが見つかりません…. 基本的に文字コードはEUC-JPで統一しているつもりでいます.「浩」以外に検索されない文字として「統」「也」などがあります.このことから,やはりどこかの文字コードがシフトJISに設定されていることが原因だと推測されるでしょうか…?

関連するQ&A

  • WindowsNT上でPostgreSQLを動かす

    こんにちわ。 WindowsNT上でApacheを使ってPHPとPostgreSQLを動かそうとしています。PostgreSQLはCygwinを使って動いてます。 やりたいことはPostgreSQLでデータベースを作成し、それをPHPを使ってデータベースの検索ページを構築したいのですが、その他のPHPページちゃんとブラウザー上で見れるのですが、PostgreSQLを含んだページは何も表示されないのです。PHPかApacheで設定するところがあるのでしょうか??それともPostgreSQLのどこかで?? どなたかWindowsでPostgreSQLを使っている方ご教授願います!!

  • 2万件のデータを最も高速に検索する方法

    知恵をお貸し下さい。 2万件ほどの飲食店のデータを 店名や、住所などの条件で検索した結果を表示するような Webサイトの構築を考えているのですが、 このような検索をする際に最も高速に検索できる方法は どんな方法なのでしょうか? 私が考えられる方法としては、 1、データをテキストファイルにしてPHPを記述して検索する。 2、データをテキストファイルにしてPerlのCGIから検索する。 3、データベース(PostgreSQL)からPHPを記述して検索する。 4、データベース(PostgreSQL)からPerlのCGIから検索する。 と、これぐらいしか思い浮かばないです。 WEBサーバーの環境としては、 LINUX、Apache Perl使用可 PHP使用可 PostgreSQL使用可 理由も添えて教えて頂けるとうれしいです。 以上、よろしくお願いします。

    • ベストアンサー
    • CGI
  • Web上で「~」が文字化けして表示されてしまう

    Web上の画面から入力したデータを、サーバー上のデータベースに保存するシステムにおいて、入力(保存)されたデータが文字化けして表示されてしまうことがあります。 具体的には、「~」と入力した場合、再度その画面を呼び出して表示してみると、「?」に文字化けしてしまいます。データベース上は「~」で保存されているのですが、どうもweb上で表示する際に文字化けしているようなのです。 なお、環境は、ブラウザがIE6.0、画面はJSPにて作成、データベースはOracle8です。 文字化けの起こる原因もしくは対策など、ご存知でしたら教えてください。

    • ベストアンサー
    • Java
  • Apacheを利用した検索

    特定のフォルダのファイルを検索する検索フォーム(html)を作りたいのですが いろいろと調べてみるとApache+perl+postgreSQLなどあるのですが データベースを使わなくても構築できるのでしょうか? 実際に作り方を示唆していただけると凄い助かるのですが 例:検索フォームにtestと入力すると、testという名のファイルの位置を返してくれるシステム /aaa/bbb/test

  • ブラウザ内の検索窓に文字が入力できない

    友達のPCでブラウザ内の検索窓に文字が入力できないという現象が起こっています。 OSはXPです。 メモ帳などでは文字の入力が出来ます。 しかしinternet explorerでyahoo japanを表示し、検索窓に文字を入力しようとすると、カーソル(点滅棒??)みたいなのが表示されないんです。 ブラウザに追加したyahooツールバーなどでは文字の打ち込みが可能です。 googleなどでも使えず、ログインすら出来ない状態です。 とりあえずページ上での入力が無理みたいです。 メモ帳に入力した文字をコピーし検索窓にペーストしようとしても無理です… 解決方法などありますでしょうか?

  • windowsから見えない

    勉強しようと思いLINUX(RHEL4.0)にapache2.2.9、postgresql8.3.5、PHP5.2.6を入れました。 データベースを作成しwebブラウザで見ようと思ったら ○ローカルでは見えた ○他のLINUXマシンからは文字化けしたが見えた ○windowsマシンからは空白のみでデータベースの表示が無い windowsマシンからは何か特別な作業が必要なのでしょうか? 情報が足りないかとは思うのですがお気づきの点がありましたら教えて頂きたく御願い致します。

  • データ型の変更について

    よろしくおねがいします。 PostgreSQLを使って、データベースを構築しているのですが、文字型のデータ(character varying)を時間型(time)に変更したいのですが、どうすればよいかわかりません。初心者なのでなるべく詳しくどなたか教えてください。

  • 検索ウィンドウに文字を打てない

    本日、友人宅にてPCを立ち上げて、Yahoo!JAPANのトップページを開きました。 そして検索ウィンドウに検索しようとする文字を入力しようとすると、 入力が出来ませんでした。 ポインターを検索ウィンドウまで持って行き、そこをクリックしても カーソルが点滅して入力できる状態になりませんでした。 これを改善するにはどうしたらいいのでしょうか? 因みに、アドレスバーへの直接入力は出来ましたし、 メモ帳への入力も可能でした。なぜかブラウザ上での記入部分にだけ 文字入力が出来ません。 OSはWindowsXPで、利用ブラウザはIEです。 宜しくお願い致します。

  • 「このページの検索」の文字が消える

    メールの中の文字を探すとき「このページの検索(Ctrl+F)」に文字入力して単語を探しています。 Ctrl+Fを表示させ、文字入力をします。その後、そのメールは削除して次のメールを表示させ、またCtrl+Fで検索を始めるのですが、そのとき、前に入力した言葉が消えているんです。 前に入力した文字が引き続きCtrl+Fを押すだけで表示されているようにするにはどうしたら良いですか? 以前は、いったん「検索」が消えてもう一度「検索」を表示させても、検索する文字は入力されたままだったんですが、最近は消えてしまうようになりました。 教えてください。 お願いします。

  • 検索したい文字が消える

    例えばyahooやgoogleで検索をするとします。 文字を入力して変換をし、エンターキーなり検索ボタンなりを押すと、 その入力した文字が消えてしまい検索ができなくなることがよくあります。 他の文字をコピペで貼り付けたあとに入力して貼り付けた文字を消して検索をすると 上手くいきます。 いつもという訳ではないのですが頻度が多いので根本的な解決方法があれば お教え願いたいと思います。宜しくお願いします。 OS windowsXP sp1 IE.ver.6 パソコンは旧式のものでメモリは256MB、ハードも80GB程度です。 訳あって、バージョンアップ等はしていません。 これが原因なのでしょうか?更新データをインストールするにはかなりの時間が・・・。