function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
Kodowanie znaków UTF-8 dla spacji bez przerw, Unicode (U+00A0), to Sekwencja 2-bajtowa
C2
A0
. Próbowałem użyć drugi parametr trim()
ale to nie wystarczyło. Przykładowe użycie:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Zamiennik MySQL dla TRIM(text_field)
usuwa również spacje bez przerw UTF, dzięki komentarzowi @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
Lista kontrolna UTF-8:
(więcej sprawdzeń tutaj )
-
Upewnij się, że Twój PHP edytor kodu źródłowego jest w Tryb UTF-8 bez BOM . Lub ustaw w preferencjach .
-
Upewnij się, że Twój MySQL klient jest ustawiony na kodowanie znaków UTF-8 (więcej tutaj i tutaj ), np.
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Upewnij się, że Twój HTTP serwer jest ustawiony na UTF-8, m.in. dla Apache :
AddDefaultCharset UTF-8
-
Upewnij się, że przeglądarka oczekuje UTF-8.
header('Content-Type: text/html; charset=utf-8');
lub
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />