新しい顧客をクリックするとエラーor検索出来ない【zencart】

zencartの管理画面には“新しい顧客”というのがあります。

zencartのインストール完了後、日本語のユーザが追加された場合、名前をクリックすると検索出来ない場合があります。

出力されたエラー

1139 Got error ‘brackets ([ ]) not balanced’ from regexp
in:
[select count(*) as total from zen_customers c left join zen_customers_info ci on c.customers_id= ci.customers_info_id left join zen_address_book a on c.customers_id = a.customers_id and c.customers_default_address_id = a.address_book_id where c.customers_lastname like '%や[j#' or c.customers_firstname like '%や[j#' or c.customers_email_address like '%や[j#' or a.entry_telephone rlike 'や[j% or a.entry_company rlike 'や[j% or a.entry_street_address rlike 'や[j% or a.entry_city rlike 'や[j% or a.entry_postcode rlike 'や[j% or c.customers_firstname_kana like '%や[j#' or c.customers_lastname_kana like '%や[j#' or a.entry_firstname_kana like '%や[j#' or a.entry_lastname_kana like '%や[j#']
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.

最初は文字コードの問題かなと思いましたが、違いました。
理由は、IE等の場合、URLがエンコードされずに、マルチバイトのまま引数として使われているからとのこと。
ちょっと難しいですね。

今回は、インストールしているXamppでzencartを動かしてたんですが、URLが以下のようになってました。

http://localhost/zencart/admin/customers.php?search=ゆーざ&origin=index

“ゆーざ”と、そのまま使われてますね。

Firefoxではちゃんと変換してくれてます。

http://localhost/zencart/admin/customers.php?search=%A4%E6%A1%BC%A4%B6&origin=index

対策方法は、zencartのバージョンが1.3の場合は、admin/index.phpの136行目の途中にある以下を変更するとうまくいきます。

変更前

'search=' . $customers->fields['customers_lastname'] 

変更後

'search=' . urlencode($customers->fields['customers_firstname']) 

これで、問題なく表示されるようになりました。

参考URL
Zen-Cart.JP コミュニティ掲示板 • トピックの表示 – 管理画面のindex.phpのバグについて
Zen-Cart.JP コミュニティ掲示板 • トピックの表示 – 顧客が消えてる

[環境]
zencartバージョン:Zen Cart 1.3.0.2-l10n-jp-3
サーバ環境:xampp(Xserverでも確認済み)