我正在使用servlet和mysql連接器5.1.44來連接mysql數據庫。如何在使用servlet的mysql中保存表情符號
Connection conn = DriverManager.getConnection(Utils.DBURL+"/"+Utils.DBName+"?useUnicode=true&characterEncoding=utf8mb4&", Utils.DBUserName, Utils.DBPassword);
這非常適用於多語言輸入,但試圖挽救表情符號時,它最終只節能「??」。 如何使用servlet來保存表情符號?
servlet代碼
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();
}
那裏的'characterEncoding'值是什麼值「utf8mb4」? – jingx
在這裏看到https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql – user3136742
'utf8mb4'作爲連接編碼嗎?我認爲這隻與存儲有關。 – tadman