2017-08-30 16 views
1

speichern Ich benutze Servlet mit mysql Connector 5.1.44, um eine Verbindung zur MySQL-Datenbank herzustellen.wie man Emoji in mysql mit Servlet

Connection conn = DriverManager.getConnection(Utils.DBURL+"/"+Utils.DBName+"?useUnicode=true&characterEncoding=utf8mb4&", Utils.DBUserName, Utils.DBPassword); 

das funktioniert gut für die mehrsprachige Eingabe aber bei dem Versuch, Emojis zu retten, es endet nur spart bis „??“. Was kann ich tun, um Emoji mit nur Servlet zu speichern?

Servlet-Code

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException{ 
response.setContentType("application/json"); 
request.setCharacterEncoding("UTF-8"); 
String content = request.getParameter("content"); 
Class.forName("com.mysql.jdbc.Driver"); 
     Connection conn = 
DriverManager.getConnection(Utils.DBURL+"/"+Utils.DBName+"? 
useUnicode=true&characterEncoding=utf8mb4&", Utils.DBUserName, 
Utils.DBPassword); 
PreparedStatement stmt = conn.prepareStatement("INSERT INTO " 
          + "`feed`(`content`)" 
          + " VALUES (?)"); 
stmt.setString(1, content); 
stmt.executeUpdate(); 
} 
+0

Was ist dieser Wert "utf8mb4" für 'characterEncoding' da? – jingx

+0

sah es hier https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql – user3136742

+0

Does 'utf8mb4' Arbeit als Verbindung Codierung? Ich dachte, das wäre nur relevant für die Speicherung. – tadman

Antwort

0

Ist die Tabelle/Datenbank in Frage, diese Unicode-Werte speichern einrichten? Der Zeichensatz, den Sie in der Verbindungszeichenfolge festlegen, steuert nur, wie Daten zwischen Client und Server übertragen werden. Wenn die Spalte diese Daten nicht speichern kann, liegen beschädigte Daten vor.

+0

ja die Spalte ist eingerichtet. mit utf8mb4_general_ci – user3136742

+0

Dann zeigt einige mehr Code, wie genau sind Sie Einfügen und die Daten an/aus der Datenbank auszuwählen wäre Hilfe – Lothar

+0

i Emojis Datenbank mit phpMyAdmin hinzufügen können, kann ich es erfolgreich abfragen. Das einzige Problem ist, wenn Servlet zum Einfügen verwendet wird, wird es ?? , Ich rate etwas ist mit Servlet – user3136742