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

Gegevens MySQL opslaan in Koerdisch lettertype?

Wat is er gebeurd:

  • u had utf8-gecodeerde gegevens (goed)
  • SET NAMES latin1 was van kracht (standaard, maar verkeerd)
  • de kolom is verklaard CHARACTER SET latin1 (standaard, maar fout)

Zoals je INSERTed de gegevens zijn geconverteerd naar latin1, die geen waarden heeft voor Arabische (Koerdische/Farsi/etc) tekens, dus vraagtekens hebben ze vervangen.

De remedie (voor toekomstige INSERTs ):

  • utf8-gecodeerde gegevens (goed)
  • mysqli_set_charset('utf8') (of wat uw klant ook nodig heeft voor het maken van de CHARACTER SET )
  • controleer of de standaardkolom(men) en/of tabel CHARACTER SET utf8 zijn
  • Als u op een webpagina weergeeft, <meta...utf8> zou bovenaan moeten staan.

De bovenstaande discussie gaat over CHARACTER SET , de codering van tekens. Nu voor een tip over COLLATION , die wordt gebruikt voor het vergelijken en sorteren.

Om te controleren of de gegevens correct zijn opgeslagen, doet u SELECT col, HEX(col)... .
ه‌رچوون moet terugkomen D987E2808CD8B1DA86D988D988D986
Arabische tekens in utf8 hebben de hexadecimale waarde van D8xx of D9xx.

(utf8mb4 werkt net zo goed als utf8; beide werken voor Arabisch.)

Slecht nieuws:de gegevens die zijn ingevoerd en omgezet in '???' kan niet worden hersteld.



  1. SSMS Object Explorer - Selecteer de bovenste N rijen die ontbreken bij verbinding met Azure DB

  2. phpMyAdmin laat me niet inloggen - geen fout weergegeven

  3. 127.0.0.1 is toegankelijk/werkt maar localhost niet toegankelijk/ werkt niet

  4. Kan geen TRIGGER maken vanuit een andere opgeslagen routine -- Wat is een andere opgeslagen routine?