CGI RESCUE さんの 簡易データベースでdatファイルを検索しようとしています。。
http://www.rescue.ne.jp/cgi/database/
キーワードで検索をしようとしているのですが、うまくヒットしません。
CGIは以下のようになっています。
# キーワード(フリーワード)
if ($FORM{'keyword'} ne '') {
if ($com5 =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'keyword'}/i) { ; }
elsif ($com4 =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'keyword'}/i) { ; }
else { next; }
}
$com5には「スズキ用<br>ドアトリム<br>バックミラー」と入っていたとします。
「スズキ」または「ドア」・「ドアトリム」・「トリム」と入力すると、ヒットします。
「バック」または「バックミラー」で検索するとヒットしません。
改行が悪いのかと思い、
$com5を「スズキ用ドアトリムバックミラー」に修正してみました。
同じように「スズキ」等はヒットするのですが、「バック」または「バックミラー」で検索するとヒットしません。
「バックミラー」と言う語句がヒットしないのかと思ったのですが・・・
$com5を「バックミラードアトリムスズキ用」に修正したとします。
「バック」・「バックミラー」でヒットします。
また、「ドア」・「トリム」まではヒットしますが、「スズキ」・「スズキ用」になるとヒットしなくなります。
全くヒットしなかったり、動作しないわけではないので、そもそもが間違っているとかではなく検索する部分で何か文字数制限があるような感じですが、これはどこを修正したら良いでしょうか?
他に情報を記入しないといけない物があれば指摘お願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>これをutf-8用に改造できないでしょうか?
>(私自身は方法が全然わからないので、修正個所・記述をそのまま教えていただけるとありがたいです)
改造は可能でしょう。ただし自己責任で行うべきです。
自分では方法はわからないという人は絶対にやるべきではありません。
使用しているスクリプトで元から想定している文字エンコーディングで使用するのが一番の解決方法です。
しかしそうではなく、自分の好きな文字エンコーディングを使用したい、機能についても元のものと似ていなければならないなどというのであれば、開発会社に依頼し作成してもらうのがいいでしょう。無料でできる範囲には限りがあるのは当然です。条件をいろいろつけるのであれば有料になるのは当たり前だと考えられるようにならなければならないと思います。
No.5
- 回答日時:
>検索フォームページ・プログラム・DATファイル共にUTF-8で保存してます。
そうですか。それが原因の可能性が高いと思います。
CGI RESCUE チャレンジCGI - 改行コード/漢字コードについて
http://www.rescue.ne.jp/cgi/crlf/
このページには
# 当サイトのスクリプトは、特に指定が無い限り、 SJISで作成しており、
# SJISのまま設置することで動作するように設計しています。
と書いてあるので、ファイルをSJISに変換して試してみてください。ただ、上記の正規表現を見るとEUCっぽく見えるんですよね。なので、SJISにしてだめならEUCにしてみてください。
SJISかEUCのどちらかならかでなら正しく動くと思います。それでダメなら別のもう少しつくりのいいスクリプトを探した方がいいでしょう。またもしも何が何でもUTF-8を使いたいというのであれば、UTF-8 に対応しているものを探した方がいいでしょう。
この回答への補足
返答ありがとうございます。
今までずっとSJISを利用していたんですけど、文字化けの問題などで全体をutf-8に変えました。
なので、この部分も出来ればutf-8を利用したいです。
これをutf-8用に改造できないでしょうか?
(私自身は方法が全然わからないので、修正個所・記述をそのまま教えていただけるとありがたいです)
もし不可能な場合、utf-8に対応している別のものを利用したいと思うのですが、似た様なものがどこかで配布されていないでしょうか?
No.4
- 回答日時:
ファイルの文字エンコーディングは何ですか?
EUC-JPになっていますか?
この回答への補足
返答ありがとうございます。
検索フォームページ・プログラム・DATファイル共にUTF-8で保存してます。
ただ、プログラムには「&jcode'convert(*value,'euc');」の記述がありますね…
もしかしてこれが原因でしょうか?
もしそうだった場合、どのように書き換えたらよいでしょうか?
No.3
- 回答日時:
・外部からデータを取り込むときに Encode::decode で外部表現から内部コードに変換する
・処理自体はすべて内部コードで行う
・外部にデータを渡すときに Encode::encode で内部コードから外部表現に戻す
というように記述する.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SEO 検索エンジン反映遅い 1 2022/06/04 07:35
- ホームページ作成・プログラミング パスワードつきホームページ トップページ以下はどうなる 6 2022/08/16 12:04
- SEO 関係ないページを検索エンジンが拾ってしまう 1 2022/05/14 11:16
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Amazon アマゾンで出版中の本の販売部数を伸ばすためには、どうすれば良いですか? 4 2022/08/18 23:30
- Illustrator(イラストレーター) イラストレーターCSで、ロゴをスコープ型に修正する方法のお尋ねです 1 2022/10/13 17:46
- その他(Microsoft Office) Windows Update 後、Office2019(Word、Excelなど)が消えた 4 2023/01/14 10:28
- その他(IT・Webサービス) ホンダ発電機EC550 オイルフィラーキャップの検索方法 1 2022/05/19 02:31
- SEO 意図しないページが検索ヒットする問題 2 2022/05/19 14:35
- 英語 英語のレポートとして、世界遺産についてまとめることになり、イギリスのウェストミンスター宮殿の歴史と現 2 2022/11/05 22:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCSVファイルの特定行を書...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
openした後、closeしないでプロ...
-
ADOによるCSVファイルからのデ...
-
拡張子 ”log” と ” dat” の違い
-
perlにて2つのファイル比較
-
MATLAB グローバル変数の宣言
-
VB6.0でDB接続する際に切断時の...
-
アクセスカウンターでデータが...
-
window.open でのファイル指定方法
-
awkスクリプトでダブルクォーテ...
-
htaccessで特定のディレクトリ...
-
fopenでディレクトリ内の全ファ...
-
ファイル出力の改行コードをLFに
-
エクセルVBAで素数だけを出力す...
-
fgets で値が取得できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルの特定行を書...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
エクセルVBA コードが同じでも...
-
csvファイル改行コードの置換に...
-
Perlの変数に文字数制限(容量...
-
perlにて2つのファイル比較
-
C言語でのファイルのデータ更...
-
JavaでCSVファイルを高速に読む...
-
VB6.0でDB接続する際に切断時の...
-
MATLAB グローバル変数の宣言
-
alarmのタイムアウト後の処理で...
-
DBMとテキストファイルのどちら...
-
perlで、後ろの行を読んで、前...
-
拡張子 ”log” と ” dat” の違い
-
5行おきに5行ずつ抽出するに...
-
テキストデータから指定した1...
おすすめ情報