漢字検索処理を全面的に見直しました。


1月28日(土)、「漢字の正しい書き順(筆順)」サイト同スマートフォン版サイトの、漢字検索処理を全面的に変更しました。

これまで気付かなかったのですが、webkitをベースとしたブラウザで、一部の漢字の検索結果に問題があることが、掲示板への書き込みから調査を進め、判明しました。

具体的には、「隆(「隆」の旧字体)」を検索しても、新字体の「隆」が表示されるというものです。

この現象は、Safari、Google Chromeで確認することが出来ました。一方、Firefox、IEでは発生しません。

原因は、上記のブラウザの挙動から、webkitベースのブラウザでのみ発生する問題だと思います。

これまで漢字の検索処理は、入力された漢字をformからpostしていたのですが、その際のエンコードが誤った結果を返すようです。

「隆(「隆」の旧字体)」は、JIS2004でコードが割り当てられたため、代替文字として「隆」のコードが割り当てられたままになっているのではないかと想像しています。

そのため、「隆(「隆」の旧字体)」のエンコード後の文字列が”%EF%A7%9C”ではなく、「隆」の”%E9%9A%86”に置き換えられているようです。

webkit系ブラウザとしてはこれが“仕様”なので、webkitが修正されるまでは当サイトの検索結果についても、これに準じて“制約事項”としてしまうことも考えたのですが、webkitが修正されるかどうか分かりませんし、問題点の報告をする手段やスキルもありませんので、試行錯誤しながら解決策を模索していました。

最終的に、JavascriptでencodeURIした場合は正しい結果が得られることが判明したために、漢字検索処理をJavascriptに変更しました。

といっても、漢字のエンコードのみJavascriptで行い、当該文字列で漢字検索するといった方法です。

手元の環境(Windows 7(64bit)SP1)では、Safari、Google Chrome、Firefox、IEでただいい結果が得られるようになりました。

スマートフォン版サイトも(PCブラウザ上ですが)正しい検索結果が得られるようになりました。

ただし、JavascriptのencodeURI関数が正しく動作することが前提ですし、webkitが更新されれば問題は解消される可能性はあります。

個人運営のサイトですので、現時点での最善策を講じたつもりです。

ご指摘等あれば、PC版メインサイトの掲示板に書き込みをお願いいたします。

少しでも皆様のお役に立てれば幸いです。

「漢字の正しい書き順(筆順)」ホームページ
PC版(URL http://kakijun.main.jp/ )
スマートフォン版(URL http://kakijun.main.jp/m-s/ )
モバイル版(URL http://kakijun.main.jp/m/ )