sql >> Database >  >> RDS >> Mysql

Chinese karaktercodering van JSF-invoer

Op voorwaarde dat je inderdaad Facelets gebruikt (die standaard UTF-8 gebruikt) en geen PrimeFaces ajax (waarvan bekend is dat het de body-codering van verzoeken verprutst ), heeft uw probleem 2 oorzaken:

  1. MySQL JDBC-stuurprogrammatekencodering is niet ingesteld op UTF-8. Dit veroorzaakte onleesbare tekens in de DB.

  2. Eclipse-consoletekencodering is niet ingesteld op UTF-8. Dit veroorzaakte onleesbare tekens in System.out .

De oplossingen zijn:

  1. Voeg useUnicode=yes toe en characterEncoding=UTF-8 parameters naar de JDBC-verbinding. U kunt het ofwel specificeren als zoekreeks in de JDBC-URL

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

    of als verbindingseigenschappen in de JDBC-gegevensbron, precies op dezelfde manier als je gebruikersnaam, wachtwoord, enz. hebt opgegeven.

  2. Vertel Eclipse om UTF-8 te gebruiken als consolecodering door Venster> Voorkeuren> Algemeen> Werkruimte> Tekstbestandscodering :

Zie ook:



  1. SQL - WHERE-voorwaarde op SUM()

  2. Bron niet gevonden Het JAR-bestand mysql-connector-java-5.1.20-bin.jar heeft geen bronbijlage

  3. Een waarde retourneren, zelfs als er geen resultaat is

  4. CodeIgniter - ses_destroy() gebruikt VEEL CPU