sql >> Databasteknik >  >> RDS >> Mysql

Kinesisk teckenkodning av JSF-ingång

Förutsatt att du verkligen använder Facelets (som använder UTF-8 som standard) och inte använder PrimeFaces ajax (som är känd för att förstöra begärandekroppskodning ), har ditt problem två orsaker:

  1. MySQL JDBC-drivrutinens teckenkodning är inte inställd på UTF-8. Detta orsakade förvrängda tecken i databasen.

  2. Eclipse-konsolens teckenkodning är inte inställd på UTF-8. Detta orsakade förvrängda tecken i System.out .

Lösningarna är:

  1. Lägg till useUnicode=yes och characterEncoding=UTF-8 parametrar till JDBC-anslutningen. Du kan ange det antingen som frågesträng i JDBC-URL:n

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

    eller som anslutningsegenskaper i JDBC-datakällan, exakt på samma sätt som du angav användarnamn, lösenord, etc.

  2. Be Eclipse använda UTF-8 som konsolkodning genom Fönster> Inställningar> Allmänt> Arbetsyta> Textfilkodning :

Se även:



  1. Oracle SQL GROUP BY inte ett GROUP BY uttryck hjälp

  2. Alternativ till Intersect i MySQL

  3. SQL-frågafel - Kolumnen kan inte vara null

  4. Databasdesign/normaliseringsstruktur måste innehålla AND, OR, valfria element och deras relationer