function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
Mã hóa ký tự UTF-8 cho khoảng trắng không ngắt, Unicode (U + 00A0), là chuỗi 2 byte
C2
A0
. Tôi đã cố gắng sử dụng tham số thứ hai của để trim()
nhưng điều đó đã không làm được thủ thuật. Ví dụ sử dụng:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
MySQL thay thế cho TRIM(text_field)
điều đó cũng loại bỏ khoảng cách không ngắt UTF, nhờ nhận xét của @ RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
Danh sách kiểm tra UTF-8:
(kiểm tra thêm tại đây )
-
Đảm bảo rằng PHP của bạn trình soạn thảo mã nguồn đang ở Chế độ UTF-8 không có BOM . Hoặc đặt trong tùy chọn .
-
Đảm bảo MySQL của bạn ứng dụng khách được đặt cho mã hóa ký tự UTF-8 (thêm tại đây và tại đây ), ví dụ:
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Đảm bảo HTTP của bạn máy chủ được đặt cho UTF-8, ví dụ:cho Apache :
AddDefaultCharset UTF-8
-
Đảm bảo rằng trình duyệt mong đợi UTF-8.
header('Content-Type: text/html; charset=utf-8');
hoặc
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />