当前位置: 首页 > 知识库问答 >
问题:

MySQL phpMyAdmin无效的utf8mb4字符串

郝池暝
2023-03-14

我无法使用MySQL和phpMyAdmin进行基本的编码工作。我想在我的数据中使用简单的法语字符(如é和è)。如果运行UPDATE,则字符插入正确。但不是在我导入剧本的时候...

下面是我在phpMyAdmin上导入的脚本:

SET NAMES utf8mb4;

CREATE TABLE Proprietaire (
    idProprietaire int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    nomProprietaire varchar(255)
    )DEFAULT CHARSET=utf8mb4
;

INSERT INTO Proprietaire (nomProprietaire) VALUES
('Léanne'),
('Fabrice'),
('Pedro')
;

导入时出现的两个错误:

Warning: #1300 Invalid utf8mb4 character string: 'E9616E'
Warning: #1366 Incorrect string value: '\xE9anne' for column 'nomProprietaire' at row 1

在phpMyAdmin上导入脚本时,唯一接近utf8mb4的选项是utf8

表和数据库也采用类似的编码

但是数据被剥离了...

我想做什么

  • 将COLLATE utf8mb4\u unicode\u ci添加到需要特殊字符的列中-

共有1个答案

邹德泽
2023-03-14

E9是e-acute的拉丁1编码。你有拉丁语1。对于utf8mb4,它需要是C3A9。

显然,phpmyadmin是为latin1配置的,因为

INSERT INTO Proprietaire (nomProprietaire) VALUES
('Léanne'), ...

给你E9。

设置为utf8mb4字符集*声明客户端(phpmyadmin)使用UTF-8编码,但显然没有。

 类似资料:
  • 问题内容: 我们有一个仅支持utf8的mySQL DB。但是我们得到了一些需要utf8mb4才能存储在mySQL中的数据提要。我们如何检测(在Java中)字符串是否需要utf8mb4字符集? 问题答案: 需要utf8mb4的字符在Java中表示为代理对,并占用2个字符。因此,一种检测它们的简单方法是检查char中字符串的长度是否与代码点的数量相同:

  • 我刚刚将我的mysql数据库从utf8转换为utf8mb4,以便支持Emojis,但现在我有一个编码问题。如果我用php打印文本,通常会显示特殊字符,但它们会在数据库中保存为LATIN1ü 我遵循这个指南https://mathiasbynens.be/notes/mysql-utf8mb4 在php中,我在建立连接后设置了这样的字符集 在转换之前,ä被保存为ä,ö被保存为ö等等。 现在它:ü-

  • 在Jenkins中解析json文件时面临以下错误 Json文件 错误 hudson.remoting.代理异常:net.sf.json.JSONExcture:无效的JSON字符串在net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:143)在net.sf.json.JSONSerializer.toJSON(JSONSerializer.j

  • 总之,我正在尝试解析中的xml。但是XMLSpy告诉我xml的格式不好。 我相信这xml中包含了一些无效字符()。因为如果我把它拿走。XMLSpy的验证已通过。我认为UTF-8编码不允许这种字符。但是如果我真的想加入这种角色呢。我应该应用哪种编码?谢谢

  • 我正在尝试设置一个Perl脚本,该脚本将使用通过Stripe处理信用卡费用。 我能够成功请求令牌,但当我使用该令牌过帐费用时,出现以下错误: 错误:无效的\u请求\u错误-无效字符串:{“exp\u month”= 这是我的密码 我应该使用以外的东西作为卡片值吗?

  • 问题内容: 我有一个MySQL转储,尝试将其恢复为: 但是,这引发了一个错误: 这是第3231-3233行: 我正在使用MySQL 5.1.69。我该如何解决这个错误? 问题答案: 您的版本不支持该字符集,我相信是它引入的。您应该将mysql升级到用于导出该文件的版本。 然后,错误就很明显了:您在代码中设置了某个字符集,但是您的mysql版本不支持该字符集,因此对此一无所知。 根据https://