function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
Кодирането на символи UTF-8 за интервал без прекъсване, Unicode (U+00A0), е 2-байтова последователност
C2
A0
. Опитах се да използвам втория параметър за trim()
но това не свърши работа. Примерна употреба:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
MySQL заместител на TRIM(text_field)
това също така премахва UTF интервали без прекъсване, благодарение на коментара на @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
UTF-8 контролен списък:
(повече проверки тук )
-
Уверете се, че вашият PHP редакторът на изходен код е вътре Режим UTF-8 без спецификация . Или задайте в предпочитанията .
-
Уверете се, че вашият MySQL клиентът е настроен за кодиране на символи UTF-8 (повече тук и тук ), напр.
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Уверете се, че вашият HTTP сървърът е настроен за UTF-8, напр. за Apache :
AddDefaultCharset UTF-8
-
Уверете се, че браузърът очаква UTF-8.
header('Content-Type: text/html; charset=utf-8');
или
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />