function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
La codificación de caracteres UTF-8 para un espacio sin interrupciones, Unicode (U+00A0), es secuencia de 2 bytes
C2
A0
. Traté de hacer uso del segundo parámetro para trim()
pero eso no funcionó. Ejemplo de uso:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Un reemplazo de MySQL para TRIM(text_field)
eso también elimina los espacios sin interrupción de UTF, gracias al comentario de @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
Lista de verificación de UTF-8:
(más controles aquí )
-
Asegúrese de que su PHP editor de código fuente está en Modo UTF-8 sin lista de materiales . O establecer en las preferencias .
-
Asegúrese de que su MySQL el cliente está configurado para la codificación de caracteres UTF-8 (más aquí y aquí ), por ejemplo
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Asegúrese de que su HTTP el servidor está configurado para UTF-8, p. para Apache :
AddDefaultCharset UTF-8
-
Asegúrese de que el navegador espera UTF-8.
header('Content-Type: text/html; charset=utf-8');
o
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />