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

W bazie danych znajdują się symbole typu  itd., co robić?

To trochę zależy, na czym właściwie polega problem...

Jeśli chodzi o to, że te postacie są domniemane aby tam być (np. „Mañana” po hiszpańsku), musisz upewnić się, że wszystko jest w UTF-8... najlepszym sposobem jest:

1:sprawdź, czy tabele bazy danych są w kodowaniu "utf-8" (jeśli nie, przekonwertuj je na utf-8)

2:jak zauważył Martin, upewnij się, że złącze bazy danych to utf-8, używając czegoś takiego:

mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3:upewnij się, że dokument jest w utf-8 (możesz dodać nagłówek na górze)

<?php header('Content-type:text/html;charset=utf-8'); ?>

4:aby być po bezpiecznej stronie, dodaj go również jako metatag

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

JEDNAK

Całkiem możliwe, że masz w bazie danych kilka duffowych znaków, w których coś takiego jak ISO-8859-1 zostało źle żonglowane do UTF-8. W takim przypadku zauważysz takie rzeczy jak £ gdzie tak naprawdę chcesz to £ (ponieważ znaki UTF-8 zawierają więcej danych niż znaki ISO-8859-1, te dodatkowe dane mogą stać się dodatkowym znakiem, jeśli nie będziesz ostrożny).

W takim przypadku najlepszym rozwiązaniem jest wyczyszczenie bazy danych (prawdopodobnie możesz zrobić coś takiego jak UPDATE table SET field = REPLACE(field, '£', '£') dla typowych "błędów"), a następnie przekonwertuj cały kaboodle na UTF-8 (jak opisano powyżej), aby uniknąć powtarzania się problemu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaokrąglić znacznik czasu w MySQL

  2. Jak wykonać zapytanie o soundex() w mysql

  3. Silnik tabeli wymiany Mysql MyISAM na InnoDB

  4. SQL ORDER BY wiele kolumn

  5. Łączna suma MySQL pogrupowana według daty