Dav*_*sen 7 php regex encoding character-encoding special-characters
我有以下代码似乎正在改变我的字符集.
$html = "à";
echo $html; // result: à
$html = preg_replace("/\s/", "", $html);
echo $html; // result: ?
Run Code Online (Sandbox Code Playgroud)
但是,当我[\t\n\r\f\v]用作我的模式而不是特殊字符时,\s它可以正常工作:
$html = "à";
echo $html; // result: à
$html = preg_replace("/[\t\n\r\f\v]/", "", $html);
echo $html; // result: à
Run Code Online (Sandbox Code Playgroud)
这是为什么?
Fab*_* Sa 11
我也有同样的问题.这是因为UTF8.
à是0xc3a0UTF8.在PHP中,您可以这样写:"\xc3\xa0".
使用PCRE /s匹配0xa0就像是ASCII"非破坏空间".
您可以使用该u标志来解决问题.
$html = preg_replace("/\s/u", "", $html);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |