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

Kódování čínských znaků vstupu JSF

Za předpokladu, že skutečně používáte Facelets (který standardně používá UTF-8) a nepoužíváte PrimeFaces ajax (o kterém je známo, že narušuje kódování těla požadavku ), váš problém má 2 příčiny:

  1. Kódování znaků ovladače MySQL JDBC není nastaveno na UTF-8. To způsobilo zkomolené znaky v DB.

  2. Kódování znaků konzoly Eclipse není nastaveno na UTF-8. To způsobilo zkomolené znaky v System.out .

Řešení jsou:

  1. Přidejte useUnicode=yes a characterEncoding=UTF-8 parametry k připojení JDBC. Můžete jej zadat buď jako řetězec dotazu v JDBC URL

    jdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
    

    nebo jako vlastnosti připojení ve zdroji dat JDBC, přesně stejným způsobem, jakým jste zadali uživatelské jméno, heslo atd.

  2. Řekněte Eclipse, aby jako konzolové kódování použilo UTF-8, pomocí Okna> Předvolby> Obecné> Pracovní plocha> Kódování textového souboru :

Viz také:



  1. co je to za chybu? Databázový dotaz selhal:Data pro sloupec 'název_sloupce' na řádku 1 byla zkrácena

  2. Nelze zjistit hodnotu null z JSON_EXTRACT

  3. Získejte výsledky z mysql na základě zeměpisné šířky a délky

  4. Jak jsou kupóny WooCommerce uloženy v databázi?