function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
De UTF-8-tekencodering voor een no-break-ruimte, Unicode (U+00A0), is de 2-byte reeks
C2
A0
. Ik heb geprobeerd gebruik te maken van de tweede parameter voor trim()
maar dat deed het niet. Voorbeeldgebruik:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Een MySQL-vervanging voor TRIM(text_field)
die ook UTF-no-break-spaties verwijdert, dankzij de opmerking van @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
UTF-8-checklist:
(meer controles hier )
-
Zorg ervoor dat uw PHP broncode-editor is in UTF-8-modus zonder stuklijst . Of stel de voorkeuren in .
-
Zorg ervoor dat uw MySQL client is ingesteld voor UTF-8-tekencodering (meer hier en hier ), bijv.
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Zorg ervoor dat uw HTTP server is ingesteld voor UTF-8, b.v. voor Apache :
AddDefaultCharset UTF-8
-
Zorg ervoor dat de browser verwacht UTF-8.
header('Content-Type: text/html; charset=utf-8');
of
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />