function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
UTF-8 tegnkodningen for et no-break space, Unicode (U+00A0), er 2-byte-sekvens
C2
A0
. Jeg forsøgte at gøre brug af anden parameter til trim()
men det gjorde ikke tricket. Eksempel på brug:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
En MySQL-erstatning for TRIM(text_field)
der også fjerner UTF no-break mellemrum, takket være @RudolfReins kommentar:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
UTF-8-tjekliste:
(flere tjek her )
-
Sørg for at din PHP kildekodeeditor er i UTF-8-tilstand uden stykliste . Eller indstil i præferencer .
-
Sørg for, at din MySQL klienten er indstillet til UTF-8 tegnkodning (mere her og her ), f.eks.
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Sørg for at din HTTP server er indstillet til UTF-8, f.eks. til Apache :
AddDefaultCharset UTF-8
-
Sørg for at browseren forventer UTF-8.
header('Content-Type: text/html; charset=utf-8');
eller
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />