sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Gemmer data MySQL i kurdisk skrifttype?

Hvad skete der:

  • du havde utf8-kodede data (godt)
  • SET NAMES latin1 var i kraft (standard, men forkert)
  • kolonnen blev erklæret CHARACTER SET latin1 (standard, men forkert)

Som du INSERTed dataene blev de konverteret til latin1, som ikke har værdier for arabiske (kurdiske/farsi/osv) tegn, så spørgsmålstegn erstattede dem.

Kuren (til fremtidige INSERTs ):

  • utf8-kodede data (godt)
  • mysqli_set_charset('utf8') (eller hvad din klient har brug for for at etablere CHARACTER SET )
  • tjek, at kolonnen(erne) og/eller tabellens standard er CHARACTER SET utf8
  • Hvis du viser på en webside, <meta...utf8> skal være tæt på toppen.

Diskussionen ovenfor handler om CHARACTER SET , indkodning af tegn. Nu til et tip om COLLATION , som bruges til at sammenligne og sortere.

For at dobbelttjekke, at dataene er lagret korrekt, skal duSELECT col, HEX(col)... .
ه‌رچوون skulle komme tilbage D987E2808CD8B1DA86D988D988D986
Arabiske tegn i utf8 har hex på D8xx eller D9xx.

(utf8mb4 fungerer lige så godt som utf8; virker enten til arabisk.)

Dårlige nyheder:De data, der blev indsat og omdannet til '???' kan ikke gendannes.



  1. Hvordan henter man data fra SQL Server baseret på nedenstående eksempel?

  2. SQL Server:Importerer database fra .mdf?

  3. Hvor kan jeg finde MySQL-logfiler i phpMyAdmin?

  4. phpmyadmin Fejlkode:200 ved indlæsning af tabelstruktur