Unicode preg_replace problema en php

Tengo la cuerda

$result = "bei einer Temperatur, die etwa 20 bis 60°C unterhalb des Schmelzpunktes der kristallinen Modifikation" 

que viene directamente de una tabla MySQL. La tabla y los encabezados php están configurados para UTF-8

Quiero quitar el símbolo de ‘grado’: http://en.wikipedia.org/wiki/Degree_symbol y reemplazarlo con la palabra ‘degrees’ para obtener:

“bei einer Temperatur, die etwa 20 bis 60degreesC unterhalb des Schmelzpunktes der kristallinen Modifikation”

pero no puedo hacer que funcione con preg_replace.

Si lo hago:

 $result = preg_replace('/\xB0/u'," degrees ", $result ); - I get an empty string 

Y si lo hago ::

 $result = preg_replace('/\u00B0/u'," degrees ", $result ); - I get the error: 

Advertencia: preg_replace () [function.preg-replace]: Comstackción fallida: PCRE no admite \ L, \ l, \ N, \ U o \ u en el desplazamiento 1 en / var / www / html / includes / classes / redeyeTable.inc.php en la línea 75

No soy bueno con las codificaciones … ¿Qué estoy haciendo mal aquí?

Utilizar

 $result = preg_replace('/\x{00B0}/u'," degrees ", $result ); 

Consulte aquí para obtener más información sobre la \x{FFFF} -syntax.

Es importante notar la diferencia entre \xB0 y \x{00B0} :

  • \xB0 denota un solo carácter con código hexadecimal B0 ( 176 decimal) que es el símbolo de grado ( ° ) en ISO-8859-1 por ejemplo
  • \x{00B0} denota el punto de código Unicode U+00B0 que describe el símbolo de grado ( ° ) en el sistema Unicode. Este punto de código se codificará utilizando dos bytes \xC2\xB0 cuando se utiliza la encoding UTF-8.

Si usa el modificador ‘u’, se supone que el patrón debe tratarse como utf-8, entonces ¿por qué no simplemente escribir ‘°’ en lugar de ‘\ u00B0’ o ‘\ xB0’?