mengganti beberapa karakter utf-8 di php

Saya memiliki string dengan beberapa karakter utf-8 yang terlihat seperti ini

\u00b4, \u2019, \u201b, \u2032

Saya ingin menggantinya dengan karakter html berikut

'

Saya menggunakan kode php berikut untuk menggantikannya

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

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

Saya terus mendapatkan peringatan berikut, dan $result adalah nol

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

Saya tidak tahu harus berbuat apa. Setiap ide tentang cara melanjutkan penggantian karakter utf8 ini sangat kami hargai!


person Onema    schedule 14.12.2011    source sumber


Jawaban (2)


Saat melakukan pencocokan preg pada kode karakter tertentu, Anda perlu menggunakan notasi heksadesimal \x, bukan notasi unicode -- yang terlihat seperti nilai unicode.

$search  = "(\xb4|\x2019|\x201b|\x2032)"; 
person Rylab    schedule 14.12.2011
comment
string yang saya miliki telah json_encoded, entah mengapa kode utf8 adalah string yang sebenarnya ’... Saya benar-benar harus mencocokkan string yang sama persis... - person Onema; 14.12.2011

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

Anda tidak menghindari garis miring terbalik dengan benar, Anda memerlukan 2 garis miring terbalik tambahan:

\\\\
person Pedro Lobito    schedule 03.09.2012