2017-08-13 18 views
0

私は正規表現パターンで「CA VOUS DIT quoi」の文に一致するようにしようとしていると動作しない:PHPワード境界/ Bの正規表現は、フランスの

$pattern=(\b".$value."\b) 

境界のようなフランスの排他的な文字以外のもので動作する単語çaの冒頭にある。私は、このようにPHPのロケールを変更することにより、単語の境界の問題を解決することができます:私はこれを行うと

setlocale(LC_ALL, 'fr_FR'); 

は、それが成功した文に一致するが、すべてのフランス語の文字はその後のように表示されているので、私は得る:

�a vous dit quoi 

種類の迷惑です。 1つの問題を解決して別の問題を解決してください。私はすでにhtmlロケールを次のように設定しています:

<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr" version="XHTML+RDFa 1.0" dir="ltr"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

これを解決するために何が必要なのかよくわかりません。確かにフランス語はフランス語に設定されたすべてのロケールでOKと表示されるはずです...?

EDIT:私のサーバーは、phpinfoによってローカル値とマスター値の両方のデフォルト文字セットとしてUTF-8を表示しています。

EDIT:この質問は、質問が全く似ていないため、示唆されたものと似ていません。解決策は同じかもしれないが、私が持っていた種類の問題をGoogleで探している人なら誰もその質問を見つけられないだろうが、彼らは私を見つけるだろう。私は人々が単にそれのために重複として質問に印をつけ始めると思う。

答えは同じであるので、この質問は、また同じように採掘に似ている: regular expression for French characters しかし、それはすべての3つの質問の重複になるだろう。

+0

https://stackoverflow.com/questions/279170/utf-8-all-the-way-throughは有用であり得ます。全体を見てください。 –

+0

これはちょっと混乱しています。あらゆる種類のさまざまな提案を持つさまざまな回答がたくさんあります。あなたはどちらの答えを指していましたか?編集:トップの答えは、すべてのMySQLとデータベースについてです。私の質問には関係していないようです。 – Hasen

+0

それは問題ではありません。 mysqlの内容にもかかわらず、すべてを読んで何かを試してみてください。ファイルのエンコードの問題かもしれません。 2-3分。読書だけでは不十分です。最初に時間をかけて戻ってきて、結果を教えてください。 –

答えて

0

それを修正するのは悪夢のようですね?フランス語ロケールで表示しますが、代わりに正規表現パターンを変更することでこの問題を別の方法で解決できました。パターンに修飾語として 'u'を追加することで、フランス語のçをçaで検出することができ、ロケールを変更する必要なくすべて正常に動作します。これに

$pattern=(\b".$value."\b) 

::このことから

$pattern=(\b".$value."\b/u) 
関連する問題