Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Białe znaki w polu bazy danych nie są usuwane przez trim()

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 )

  1. Upewnij się, że Twój PHP edytor kodu źródłowego jest w Tryb UTF-8 bez BOM . Lub ustaw w preferencjach .

  2. 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");

  3. Upewnij się, że Twój HTTP serwer jest ustawiony na UTF-8, m.in. dla Apache :

    AddDefaultCharset UTF-8

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaznaczenie pola wyboru aktualizacji PHP/MySQL do bazy danych

  2. Dlaczego moje dane aplikacji ankiety Django SessionWizardView nie wyświetlają się w użytecznym formacie w mojej bazie danych MySQL?

  3. Zrozumienie struktury rekordów MyISAM

  4. Aktualizacja Flask-SQLAlchemy tworzy nowy rekord w MySQL

  5. Jak stworzyć mapę witryny za pomocą PHP i MySQL