function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
A codificação de caracteres UTF-8 para um espaço sem quebra, Unicode (U+00A0), é o sequência de 2 bytes
C2
A0
. Tentei usar o segundo parâmetro para trim()
mas isso não resolveu. Exemplo de uso:assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Um substituto do MySQL para
TRIM(text_field)
que também remove espaços no-break UTF, graças ao comentário de @RudolfRein:TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
Lista de verificação UTF-8:
(mais cheques aqui )
-
Certifique-se de que seu PHP editor de código-fonte está em Modo UTF-8 sem BOM . Ou defina nas preferências .
-
Certifique-se de que seu MySQL cliente está configurado para codificação de caracteres UTF-8 (mais aqui e aqui ), por exemplo.
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Certifique-se de que seu HTTP server está definido para UTF-8, por exemplo para Apache :
AddDefaultCharset UTF-8
-
Verifique se o navegador espera UTF-8.
header('Content-Type: text/html; charset=utf-8');
ou
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />