function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}
Pengkodean karakter UTF-8 untuk ruang tanpa jeda, Unicode (U+00A0), adalah Urutan 2 byte
C2
A0
. Saya mencoba menggunakan parameter kedua ke trim()
tapi itu tidak berhasil. Contoh penggunaan:
assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));
Pengganti MySQL untuk TRIM(text_field)
yang juga menghapus spasi tanpa jeda UTF, berkat komentar @RudolfRein:
TRIM(REPLACE(text_field, '\xc2\xa0', ' '))
Daftar periksa UTF-8:
(selengkapnya cek di sini )
-
Pastikan PHP . Anda editor kode sumber ada di mode UTF-8 tanpa BOM . Atau atur di preferensi .
-
Pastikan MySQL . Anda klien disetel untuk pengkodean karakter UTF-8 (selengkapnya di sini dan di sini ), misalnya
$pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password);
$pdo->exec("SET CHARACTER SET utf8");
-
Pastikan HTTP . Anda server diatur untuk UTF-8, mis. untuk Apache :
AddDefaultCharset UTF-8
-
Pastikan browser mengharapkan UTF-8.
header('Content-Type: text/html; charset=utf-8');
atau
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />