Mysql
 sql >> Database >  >> RDS >> Mysql

Codifica dei caratteri cinesi dell'input JSF

A condizione che tu stia effettivamente utilizzando Facelets (che utilizza UTF-8 per impostazione predefinita) e non utilizzi PrimeFaces ajax (che è noto per rovinare la codifica del corpo della richiesta ), il tuo problema ha 2 cause:

  1. La codifica dei caratteri del driver MySQL JDBC non è stata impostata su UTF-8. Ciò ha causato caratteri confusi nel DB.

  2. La codifica dei caratteri della console Eclipse non è stata impostata su UTF-8. Ciò ha causato caratteri confusi in System.out .

Le soluzioni sono:

  1. Aggiungi useUnicode=yes e characterEncoding=UTF-8 parametri alla connessione JDBC. Puoi specificarlo come stringa di query nell'URL JDBC

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

    o come proprietà di connessione nell'origine dati JDBC, esattamente nello stesso modo in cui hai specificato nome utente, password, ecc.

  2. Indica a Eclipse di utilizzare UTF-8 come codifica della console tramite Finestra> Preferenze> Generali> Area di lavoro> Codifica file di testo :

Vedi anche: