在5.6.22服务器上使用mysql connector 8保存emojis

p4tfgftt  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(389)

我有一个以前使用过的系统:
mysql服务器5.6.22
mysql连接器5.1.47
特定列被设置为使用utf8mb4\u unicode\u ci
我能够使用java保存和读取表列中的emojis。
mysql connector现在因为某种原因升级到了8.0.12版本,系统在保存emojis时有问题,
原因:java.sql.sqlexception:字符串值不正确:'\xf0\x9f\x90\x91'用于第1行的“name”列
有人知道怎么解决这个问题吗?非常感谢。
顺便说一句,我使用的jdbc连接字符串已经有useunicode=true和characterencoding=utf-8

ijxebb2r

ijxebb2r1#

那只羊需要utf8mb4,而不是整个mysql的utf8。不仅是栏目,还有联系。
对于java:
添加 ?useUnicode=yes&characterEncoding=UTF-8 到jdbc url(或者可能是=true和=utf8)

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8" %>

compileJava.options.encoding = 'UTF-8'

<form method="post" action="/your/url/" accept-charset="UTF-8">

要将4字节utf8与connector/j一起使用,请使用 character_set_server=utf8mb4 . 只要连接字符串中没有设置characterencoding,connector/j就会使用该设置。这相当于自动检测字符集。

相关问题