我得到了字符串
$result = "bei einer Temperatur, die etwa 20 bis 60°C unterhalb des Schmelzpunktes der kristallinen Modifikation"
直接来自 MySQL 表。表格和 php header 都设置为 UTF-8
我想去除“学位”符号:http://en.wikipedia.org/wiki/Degree_symbol并将其替换为“度”一词以获得:
“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
如果我这样做了::
$result = preg_replace('/\u00B0/u'," degrees ", $result ); - I get the error:
警告:preg_replace() [function.preg-replace]:编译失败:PCRE 不支持/var/www/html/includes 中偏移量 1 处的\L、\l、\N、\U 或\u/classes/redeyeTable.inc.php 第 75 行
我不擅长编码...我做错了什么?
最佳答案
使用
$result = preg_replace('/\x{00B0}/u'," degrees ", $result );
请参阅here有关 \x{FFFF}
语法的更多信息。
请务必注意 \xB0
和 \x{00B0}
之间的区别:
\xB0
表示带有十六进制代码B0
(176
十进制)的单个字符,它是度数符号(°
) 例如 ISO-8859-1\x{00B0}
表示unicode代码点U+00B0
,描述unicode系统中的度数符号(°
)。当使用 UTF-8 编码时,此代码点将使用两个字节\xC2\xB0
进行编码。
关于php - php中的unicode preg_replace问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140734/