热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JDBC和utf8mb4编码表情符号

如何解决《JDBC和utf8mb4编码表情符号》经验,请帮忙看看怎么搞?

我使用Mysql 5.7.18并且在更新时遇到了表情符号的问题JDBC.

表创建:body是键入的utf8,localizationsutf8mb4

CREATE TABLE `my_table` (
  `body` TEXT NOT NULL,
  `localizations` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8;

现在我SequelPro用来插入数据.为了正确地做,我按Database -> View using encoding -> utf8mb4.插入代码:

INSERT INTO my_table(body, localizations) VALUES ('test', '');

然后我尝试从jdbc加载它.这是当前在项目中使用的连接字符串部分(此处仅使用格式化以方便阅读):

?useEncoding=true
&characterEncoding=UTF-8

它成功localizations从数据库加载.但是从JDBC更新表会返回错误:

SQLException: Incorrect string value: '\xF0\x9F\x94\xA5"}...' for column 'localizations'

我想这是因为连接编码.SequelPro有一个Show server variables选项,这里的DIFF utf8utf8mb4:

character_set_client = utf8mb4
character_set_cOnnection= utf8mb4
character_set_results = utf8mb4
collation_cOnnection= utf8mb4_general_ci

所以我尝试修改连接字符串:

?useEncoding=true
&characterEncoding=UTF-8
&sessiOnVariables=
  character_set_client=utf8mb4,
  character_set_cOnnection=utf8mb4,
  character_set_results=utf8mb4,
  collation_cOnnection=utf8mb4_general_ci

仍然是同一个问题.有什么建议吗?


推荐阅读
author-avatar
KEN
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有