6

そのため、一部の Unicode スペースと一部の ASCII スペースを使用するデータを受信して​​いるため、同じように見える特定の文字列が同等ではない (たとえば、「耐水性」!= "耐水性"。これらの文字列は私のデータベースでは異なって表示されますが、マルチバイト文字がある場合に通常見られる奇妙な文字、「耐水」と「耐水」が表示されます。

すべてのスペースを ASCII スペースにするか、もっと簡単にすればすべてのスペースをマルチバイト スペースにする方法が欲しいです。

preg_replace を使用してみましたが、文字列が有効なマルチバイト文字列のように読み取れなくなりました。(文字列内のマルチバイト文字はゴミとして表示されます)。

preg_replace('/[\pZ\pC]/',' ',$field);

mb_ereg_replace も使用してみましたが、効果はありませんでした。

mb_ereg_replace('/[\pZ\pC]/',' ',$field)
4

4 に答える 4

5

動作しているように見えますpreg_replace('/[\pZ\pC]/u',' ',$field);(正規表現の最後にある u を忘れました)

于 2013-11-20T20:25:12.720 に答える