sql >> Databáze >  >> Database Tools >> phpMyAdmin

Ukládání dat MySQL v kurdském písmu?

Co se stalo:

  • máte data kódovaná utf8 (dobře)
  • SET NAMES latin1 byl v platnosti (výchozí, ale nesprávný)
  • sloupec byl deklarován jako CHARACTER SET latin1 (výchozí, ale chybné)

Jak jste INSERTed data byla převedena na latinku1, která nemá hodnoty pro arabské (kurdské/farsí/atd.) znaky, takže je nahradily otazníky.

Lék (pro budoucí INSERTs ):

  • data kódovaná utf8 (dobrá)
  • mysqli_set_charset('utf8') (nebo cokoli, co váš klient potřebuje k vytvoření CHARACTER SET )
  • zkontrolujte, že výchozí sloupce a/nebo tabulka jsou CHARACTER SET utf8
  • Pokud zobrazujete na webové stránce, <meta...utf8> by měl být blízko vrcholu.

Výše uvedená diskuse se týká CHARACTER SET , kódování znaků. Nyní tip na COLLATION , který se používá pro porovnávání a řazení.

Chcete-li znovu zkontrolovat, zda jsou data správně uložena, proveďteSELECT col, HEX(col)... .
ه‌رچوون by se měl vrátit D987E2808CD8B1DA86D988D988D986
Arabské znaky v utf8 mají hex D8xx nebo D9xx.

(utf8mb4 funguje stejně dobře jako utf8; buď funguje pro arabštinu.)

Špatná zpráva:Data, která byla vložena a převedena na „???“ nelze obnovit.



  1. Vytvořit novou tabulku není na SSMS 2016 pro SQL Server 2008 vidět

  2. V PHP dynamicky získat název tabulky a pole ze souboru csv a importovat do MYSQL

  3. xampp mysql server se nespouští

  4. Nelze otevřít phpmyadmin, require_once(./libraries/common.inc.php):nepodařilo se otevřít stream:Žádný takový soubor nebo adresář