问题标签 [utf8mb4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1033 浏览

mysql - 不正确的字符串值:'\xF0\X9F... 我使用 utf8mb4 得到?在mysql中

源字符是我们的一个应用程序用户添加的“检查中”,我无法弄清楚它实际上是什么。

我使用此链接的方式(“尝试通过 JDBC 将 UTF-8 插入 MySQL 时“不正确的字符串值”?)来解决当我通过 jdbc 将特殊字符插入 mysql 时的问题。

但是当sql异常消失时,我发现我插入mysql的字符是这样的“?检查中”

谁能帮我解决这个问题?谢谢

0 投票
1 回答
709 浏览

python - 从 python 脚本获取“OperationalError: 1366” - MySQL 5.6。MySQL数据库 1.2.3

环境:

  • MySQL-python-1.2.3.win-amd64-py2.7

  • python-2.7.amd64

  • mysql-installer-community-5.6.12.2

  • Windows Server 2008 R2 数据中心

使用 python 脚本插入数据时出现操作错误 1366。我需要运行2010 年的EPFImporter

我认为问题在于 MySQLdb 只能处理uft8而不能utf8mb4_unicode_ci。我需要导入的数据包含 utf8mb4 字符,我可能不会删除它们。

在成功插入 ~70.000 行后,从 CMD 命令行运行脚本会给我以下错误消息:

我已经做了:

我将以下内容从 INNODB 更改为:

在此更改之前,它根本没有导入任何行。

我还可以做些什么?通常它应该可以工作,因为我在共享主机上运行它 MySQL Server Version: 5.5.28 并且工作正常

EDIT1:为了测试,我安装了最新的 XAMPP 版本,在 XAMPP 下脚本运行良好,只有 XAMPP-MySQL 服务器运行而不是 Apache。Python 和 MySQLdb 版本与以前保持一致,未受影响。所以我现在很确定我在 MySQL-Server 的配置中做错了什么。在 XAMPP 中,数据库使用 InnoDB 引擎运行。

以下是 XAMPP MYSQL Server 的规格:

有谁知道我可以做些什么来追踪我原来的 MySQL 设置中的问题?可能是变量设置、MYSQL 错误处理或 Python 连接器中的某些东西?

0 投票
1 回答
1729 浏览

php - 在php中将utf8mb4字符转换为utf8

有没有办法将 utf8mb4 字符转换为 utf8 以存储在 utf8 mysql 数据库中?然后当我们从数据库中获取它时,将其恢复为 utf8mb4。

目标是将手机笑脸存储在 utf8 数据库中,而无需更改数据库编码。

例如将这些字符的第一个字节替换为特殊字节,然后在恢复中将其改回?

0 投票
1 回答
1233 浏览

mysql - utf8mb4 字符在“LOAD DATA INFILE”中不存在

我有一个 csv 文件,其中包含一些位于 Unicode BMP 之外的字符,例如字符. 它们是 SMP 字符,因此它们需要存储在 MySQL 中的 charset 和 collat​​ion 中,而不是utf8mb4charset和collat​​ion 中。utf8mb4_general_ciutf8utf8_general_ci

所以这是我的 SQL 查询。

没有警告。一切都是对的。现在我想加载那个 csv 文件。对于测试,该文件只有一行。

警告信息是:

我所有的工作环境(操作系统、Termianl 等)都使用 UTF-8。我已经utf8mb4在我能想到的每个地方都指定了,如果我手动INSERT INTO它就可以了。但是,当我使用LOAD DATA INFILE [...] CHARACTER SET utf8mb4 [...]它时,它会因错误“字符串值不正确”而失败。

0 投票
1 回答
1726 浏览

mysql - MySQL UTF8 排序规则是否适合日文和韩文字符?

我在 PHP 和 MySQL 中将所有排序规则和字符集设置为 UTF8。没有问题。但正如在http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html上看到的,标准utf8_general_ci排序规则使用三个字节来存储字符。这应该足以存储所有BMP字符。但是我仍然没有找到任何提示,如果所有韩文和日文字符都包含在 BMP 中,或者是否有字符需要存储四个字节。我只是想知道,是否utf8_general_ci真的utf8_bin足以存储所有韩文/日文字符,或者我是否必须使用utf8mb4_general_ciand utf8mb4_bin

0 投票
1 回答
4864 浏览

html - 如何将表情符号(UTF8 4 字节字符)插入 MySQL < 5.5

我有一个与 iPhone 和 Android 用户连接的网站。他们有时使用 UTF8MB4 字符(表情符号)。在我的 MySQL 数据库(格式化 UTF8)中的字符串中插入这些字符时,数据在第一个表情符号处被裁剪。

不幸的是,我的主机正在运行 MySQL 5.1.66,并且不打算更新到更新版本。那么在不切换编码的情况下临时使用的最佳解决方案是什么?

0 投票
1 回答
207 浏览

mysql - MySQL 无法在 Jetty 上使用 utf8mb4 字符串更新记录

我正在使用 MySQL DB 在 EC2 linux 实例上通过码头运行 java。该列是一个 VARCHAR,设置为接受 utf8mb4 编码。

在玩弄了一些东西之后,我发现当我通过 运行这段代码时它可以工作gradle jettyRunWar,甚至在 tomcat 服务器上运行相同的代码时也是如此。

当我在 $JETTY_HOME/webapps/root.war 中放置与之前完全相同的战争时,它不起作用,然后使用sudo service jetty start.

显示的错误是 -

当前列定义 -

值是通过preparedStatement.setString(...) 在SQL 中设置的,我确保mysql 连接器JAR 是相同的。

有任何想法吗?

0 投票
2 回答
4642 浏览

mysql - 如何将索引 varchar(255) 从 utf8 更改为 utf8mb4 并且仍然保持在 767 最大密钥长度以下?

我有一个需要支持表情符号的 mysql 列,这意味着将 utf8 列转换为 utf8mb4。但是我的 varchar(255) 不适合,只要该列被索引(不是唯一的)。

如何保留索引并获取 utf8mb4 排序规则?

我试图将长度减少到 191,但不幸的是我的一些行更长,我收到了这个错误:(#1406 - Data too long for column 'column_name' at row 33565这不是很有帮助,因为我没有自动增量列并且不知道如何罚款第 33565 行)。

0 投票
2 回答
14387 浏览

mysql - 如何在 CodeIgniter 中将 unicode emoji 存储到 MYSQL

我正在使用 codeigniter 并尝试保存到 MYSQL 数据库表

我得到的错误是

0 投票
1 回答
789 浏览

php - 在mysql中搜索包含表情符号的字符串,返回空结果

我存储了一些标题名称

文字 + 表情符号(例如:华盛顿特区假期旅游指南)

在我的桌子上。如果我尝试搜索这样完整的字符串,则返回的结果为空。有什么方法可以支持 mysql 中的表情符号搜索

我的查询

select * from comments where comment like '%Guid😃%'

返回空结果

如果我只是给

select * from comments where comment like '%Washington%'

结果行正在显示。

我还确保字符集是 utfmb4