Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Chinesische Zeichenkodierung der JSF-Eingabe

Vorausgesetzt, Sie verwenden tatsächlich Facelets (das standardmäßig UTF-8 verwendet) und nicht PrimeFaces Ajax (die dafür bekannt ist, dass sie die Codierung des Anfragetexts durcheinanderbringt ), hat Ihr Problem 2 Ursachen:

  1. Die Zeichencodierung des MySQL-JDBC-Treibers ist nicht auf UTF-8 eingestellt. Dies führte zu verstümmelten Zeichen in der DB.

  2. Die Zeichenkodierung der Eclipse-Konsole ist nicht auf UTF-8 eingestellt. Dies führte zu verstümmelten Zeichen in System.out .

Die Lösungen sind:

  1. Fügen Sie useUnicode=yes hinzu und characterEncoding=UTF-8 Parameter an die JDBC-Verbindung. Sie können es entweder als Abfragezeichenfolge in der JDBC-URL

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

    oder als Verbindungseigenschaften in der JDBC-Datenquelle, genauso wie Sie Benutzername, Passwort usw. angegeben haben.

  2. Weisen Sie Eclipse an, UTF-8 als Konsolencodierung zu verwenden, indem Sie Window> Preferences> General> Workspace> Text File Encoding verwenden :

Siehe auch: