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

Java Server Pages - řazení při vkládání do MySql?

Otazníky pocházejí z tohoto:

  • Klient má platný znak (dobrý) a
  • Položka SET NAMES souhlasí s kódováním, které má klient (dobré), ale
  • CHARACTER SET cílového sloupce nezahrnuje zamýšlený znak (špatný).

Příklady:

  • latin1 zvládá pouze západoevropské znaky; pokusit se vložit východoevropský znak nebo jakýkoli asijský znak se do init nehodí.
  • latin2 a cp1250 umí češtinu, takže převody mezi nimi jsou většinou v pořádku, ale ne mezi žádným z nich a latin1
  • utf8mb4 je nadmnožinou utf8 .Vložení znaku utf8 do utf8mb4 je v pořádku, ale obrácený způsob bude mít za následek '?' v některých případech.

Znaky, které byly převedeny na '?' nelze obnovit z tabulky.

Jak opravit budoucí INSERTs ?

  • Pomocí utf8mb4 ve sloupcích tabulky pravděpodobně funguje ve všech případech.
  • V opačném případě vyberte nějakou CHARACTER SET pro sloupce tabulky, které přiměřeně odpovídají datům klienta.

Důvod, proč jsou pouze některé znaky ? (v š?ž?? ), protože šž existují v latin1, ale ostatní ne.

Sečteno a podtrženo:Změňte CHARACTER SET v definici tabulky.



  1. Jak emulovat úplné vnější spojení v tomto dotazu?

  2. Dobrý návod, jak aktualizovat databázi Mysql pomocí formuláře PHP?

  3. Jak zastavit/zabít dotaz v postgresql?

  4. Přidejte nový sloupec do velké tabulky mysql