2011-12-14 56 views
0

多個UTF-8字符我有多個UTF-8字符看起來像這樣替換PHP

\u00b4, \u2019, \u201b, \u2032 

字符串我想用下面的HTML字符

' 

我更換這些使用下面的PHP代碼來代替這些

$search = "(\\u00b4|\\u2019|\\u201b|\\u2032)"; 
$replace = "'"; 

$result = preg_replace($search, $replace, $string); 

我不斷收到以下警告,並且$ result爲空

Warning: preg_replace(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 2 in /... 

我不知道該怎麼做。有關如何繼續替換這些utf8字符的任何想法,我們感激不盡!

回答

0

在特定字符代碼上進行preg匹配時,您需要使用\ x十六進制表示法,而不是unicode表示法 - 它們看起來像unicode值。

$search = "(\xb4|\x2019|\x201b|\x2032)"; 
+0

,我已經json_encoded,由於某種原因,UTF8編碼是一個實際的字符串串\ u2019 ...我真的必須匹配確切的字符串... – Onema 2011-12-14 19:40:54

0
$unicode = "\u00b4 \u2019 \u201b \u2032"; 
$unicode = preg_replace('/\\\\u[^ ]+/im', "'\r\n", $unicode); 
echo $unicode; 

您沒有正確逃生反斜線,則需要2個額外的反斜槓:

\\\\