1

私の正規表現はアクセント付きの文字を考慮しないため、ü、õ、ö、または ä の文字を含む単語を検索しているときに一致が見つかりません。

$data は、strip_tags を使用して HTML タグから取り除かれた HTML データであり、ü、õ、ö、および ä の文字を含む単語が、Web サイトから CURL を介して UTF-8 の文字エンコードで読み込まれます (返されたヘッダーが教えてくれます)。

$data = strip_tags( curl_exec('my_website_url') );
$match = preg_match( '/ü/' , $data , $matches );

以下を使用してみました(「ISO-8859-1」も使用):

mb_internal_encoding("UTF-8");
mb_regex_encoding('UTF-8');

また:

$data = utf8_decode($data)

まだ成功していません。

4

2 に答える 2

1

PHPソースファイルもUTF-8でエンコードされていることを確認してください。

たとえばISO-8859-1の場合、 preg_matchディレクティブのinは、UTF-8データのsüとは異なる文字になります。ü

于 2012-11-20T14:07:48.103 に答える
0

UTF-8 を使用していることを PRCE に伝える必要があります。これはu修飾子 ->を追加することによって行われ'/ü/u'ます。ただし、可能であれば、これらの文字をソース コードに直接記述しないでください。ファイルのエンコーディングを変更すると (または編集者が変更すると)、コードが機能しなくなり、これを追跡するのは非常に PITA になります。'/ü/'問題の文字をそのコードに置き換えるために直接使用する代わりに、私はお勧めします: '/\x{c3bc}/u'- 0xc3bc はあなたの文字です。

于 2012-11-20T18:14:06.137 に答える