アプリ版:「スタンプのみでお礼する」機能のリリースについて

前回質問させて頂いた件ですが詳細情報を追記致します。
PHP+MySQLで部分一致検索の処理を作成しているのですが
ある文字は正常に検索できてある文字は正常に検索できていないといった文字によって動きが異なります。
原因が不明なのでどなたか教えてください。
宜しくお願いします。

【現象】
下記の(1)(2)のDB項目を"作成"の部分一致で検索しても(1)しか検索されない。(両方とも漢字)
(1)XXX作成
(2)○○○作成

【環境】
PHPのバージョン・・・4.4.2
MySQLのバージョン・・・4.0

【検索SQLの一部】
"テーブル名 LIKE '%".mb_convert_encoding(検索文字列,"UTF8","SJIS")."%'";

【php.info情報】
mbstring.http_input:auto
mbstring.http_output:SJIS
mbstring.internal_encoding:SJIS
mbstring.language:Japanese
mbstring.encoding_translation:On
Multibyte Support:enabled
Multibyte Support :enabled

A 回答 (1件)

レス付きませんね。


自分はUTF8環境を持ってないので、テストする事ができないので、
こうすれば良いという回答は出来ません。
アドバイスのみです。

(1)自分でやるとしたら、まずはMySQLを使わずにPHPのみで
同じ問題が起きるのかを確認してみます。

(2)PHPのマニュアルによると、内部エンコーディングSJISは
問題がありそうです。以下に引用しました。
> PHPの内部エンコーディングとして使用可能な文字エンコーディングと 使用できない文字エンコーディングの例を以下に示します。
>
> PHPで動作する文字エンコーディング:
> ISO-8859-*, EUC-JP, UTF-8
>
> PHPで動作しない文字エンコーディング:
> JIS, SJIS
>
> PHPの内部エンコーディングとして使用できない文字エンコーディングは、 mbstringのHTTP入力/出力変換の機能/関数により変換 することが可能です。
>
> 注意: SJIS は、読者がパーサ/コンパイラ、文字エンコーディングと文字エン コーディングの問題点について精通していない限り内部エンコーディン グとして使用するべきではありません。
>
    • good
    • 0
この回答へのお礼

お騒がせしました。
検索文を
「LIKE BINARY」としたら検索できました。

お礼日時:2006/07/26 13:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!