Ed *_*wis 4 php regex unicode utf-8 preg-replace
我有字符串
$result = "bei einer Temperatur, die etwa 20 bis 60°C unterhalb des Schmelzpunktes der kristallinen Modifikation"
Run Code Online (Sandbox Code Playgroud)
它直接来自MySQL表.该表和php标头都设置为UTF-8
我想删除'学位'符号:http://en.wikipedia.org/wiki/Degree_symbol并将其替换为'degrees',以获得:
"bei einer Temperatur,die etwa 20 bis 60degreesC unterhalb des Schmelzpunktes der kristallinen Modifikation"
但我不能让它与preg_replace一起工作.
如果我做:
$result = preg_replace('/\xB0/u'," degrees ", $result ); - I get an empty string
Run Code Online (Sandbox Code Playgroud)
如果我这样做::
$result = preg_replace('/\u00B0/u'," degrees ", $result ); - I get the error:
Run Code Online (Sandbox Code Playgroud)
警告:preg_replace()[function.preg-replace]:编译失败:PCRE不支持/ var/www/html/includes/classes /中偏移量为1的L,\ l,\ N,\ U或\ u第75行的redeyeTable.inc.php
编码时我不是很好......我在这里做错了什么?
Ste*_*rig 25
使用
$result = preg_replace('/\x{00B0}/u'," degrees ", $result );
Run Code Online (Sandbox Code Playgroud)
有关-syntax的更多信息,请参阅此处\x{FFFF}.
需要注意的区别是很重要的\xB0和\x{00B0}:
\xB0表示具有十六进制代码B0(176十进制)的单个字符,°例如ISO-8859-1中的度数符号()\x{00B0}表示unicode代码点U+00B0,它描述°unicode系统中的度符号().\xC2\xB0使用UTF-8编码时,此代码点将使用两个字节进行编码.