function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
Die UTF-8-Zeichenkodierung für ein geschütztes Leerzeichen, Unicode (U+00A0), ist 2-Byte-Folge
C2
A0
. Ich habe versucht, den zweiten Parameter für trim()
aber das hat nicht gereicht. Verwendungsbeispiel:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Ein MySQL-Ersatz für TRIM(text_field)
das entfernt auch UTF-No-Break-Leerzeichen, dank des Kommentars von @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
UTF-8-Checkliste:
(weitere Prüfungen hier ). )
-
Stellen Sie sicher, dass Ihr PHP Quellcode-Editor ist drin UTF-8-Modus ohne BOM . Oder in den Einstellungen festlegen .
-
Stellen Sie sicher, dass Ihr MySQL Client auf UTF-8-Zeichenkodierung eingestellt ist (mehr hier ). und hier ), z. B.
$pdo =new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Stellen Sie sicher, dass Ihr HTTP Server ist auf UTF-8 eingestellt, z.B. für Apache :
AddDefaultCharset UTF-8
-
Stellen Sie sicher, dass der Browser erwartet UTF-8.
header('Content-Type:text/html; charset=utf-8');
oder