sql >> Databáze >  >> RDS >> Mysql

Problémy s vložením řetězce utf-8 do databáze a jeho výstupem na webovou stránku

Ano, mohu.
Neřekli jste serveru Mysql, jaké kódování dat chcete.
Mysql může poskytnout jakékoli kódování v případě, že se kódování vaší stránky liší od kódování uložených dat. A překódujte jej za běhu.
Musí mu tedy být sděleno preferované kódování klienta (váš kód PHP je tím databázovým klientem).
Ve výchozím nastavení je to latin1 . Protože tedy v tabulce znaků latin1 žádné takové symboly nejsou, vrací se místo nich otazníky.

Existují 2 způsoby, jak říci mysql, jaké kódování chceme:

  • trochu preferovanější je mysqli_set_charset() funkce (ve vašem případě metoda).
  • méně preferovaný je SET NAMES dotaz.

Ale pokud používáte rozšíření mysqli správně, na tom opravdu nezáleží. (ačkoli nejste)

Všimněte si, že v mysql se toto kódování nazývá utf8 , bez pomlček a mezer.



  1. Získejte název připojené databáze mysql (JDBC)

  2. souběžné čtení a zápis do tabulky MySQL

  3. Jak mohu získat názvy sloupců z tabulky v Oracle?

  4. problémy s mysqldump s chybou obnovení:'Před IMPORTEM ZRUŠTE tabulkový prostor'