Trong chuỗi của tôi, tôi có utf-8 không phá vỡ không gian (0xc2a0) và tôi muốn thay thế nó bằng cái gì khác.không phá vỡ utf-8 0xc2a0 không gian và preg_replace hành vi lạ
Khi tôi sử dụng
$str=preg_replace('~\xc2\xa0~', 'X', $str);
nó hoạt động OK.
Nhưng khi tôi sử dụng
$str=preg_replace('~\x{C2A0}~siu', 'W', $str);
không gian không bị phá hủy không được tìm thấy (và thay thế).
Tại sao? Điều gì là sai với regexp thứ hai?
Định dạng \x{C2A0}
là chính xác, tôi cũng sử dụng cờ u
.
Có thể là vì '$ str' không phải là unicode chuỗi. – YOU