Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khoảng trắng trong trường cơ sở dữ liệu không bị xóa bởi trim ()

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 )

  1. Đả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 .

  2. Đả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 tại đây ), ví dụ:

    $pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password); $pdo->exec("SET CHARACTER SET utf8");

  3. Đảm bảo HTTP của bạn máy chủ được đặt cho UTF-8, ví dụ:cho Apache :

    AddDefaultCharset UTF-8

  4. Đả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" />



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn tất cả các hàng ngoại trừ một hàng trong MySQL

  2. Cột trùng lặp khi tham gia

  3. Làm cách nào để kết nối với MySQL 5.1 trong Visual Studio 2010?

  4. PDO - Tìm nạp PGS trong vòng lặp 'while'

  5. Laravel Query Builder - vấn đề về phương thức sum ()