问题标签 [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 投票
1 回答
384 浏览

ios - Google App Engine 对 utf8mb4 的支持

根据这篇文章,从 iOS4 到 iOS6 支持 emoji 字符的正确方法是使用 utf8mb4 编码。App Engine 的数据存储区是否支持 utf8mb4?目前,我在我的 iOS 应用程序中使用 Java 版本的 App Engine 作为后端。

0 投票
1 回答
2105 浏览

mysql - 在 AWS MySQL 中存储表情符号字符

我有一个使用标准 MySQL 数据库的 Amazon Web Services 托管 Spring + Hibernate 应用程序。该应用程序用作 iPhone 应用程序的后端。我正在尝试将在 iPhone 上输入的表情符号字符存储在 MySQL 数据库中。我做了一些研究,发现它需要 4 字节 UTF-8 存储,自 MySQL 5.5 起支持 utf8mb4 字符集。但是,AWS 尚不支持将其作为组参数中的一个选项。

我正在寻找一个很好的解决方法,它仍然使这成为可能。我知道一种解决方法是将文本作为 BLOB 存储在数据库中,但是我不能再对该文本执行文本查询。

0 投票
2 回答
4701 浏览

mysql - phpMyAdmin mysql 将表情符号保存为问号

我想将 Emoji 保存到 MySql 数据库中,我意识到,三个字节的 Emoji 正确保存在数据库中,但是 4 个字节的 emoji 已保存为问号。似乎我确实将 utf8 完全转换为 utf8mb4,但我不知道这里到底缺少什么。我的 MySQL 版本是 5.5.29,当我SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';在 MySql shell 中执行时,它显示以下内容:

现在,出于测试目的,我只创建了 1 个数据库和 1 个表来测试表情符号的保存。我通过 phpMyAdmin 创建了数据库,并通过 MySql shell 创建了表:

它仍然不起作用(仍然是问号)。

但是,我发现了一些有趣的东西,我在 phpMyAdmin 中看到了问号,但是如果我输入 select * from test_emoji; 我可以在 Mysql shell 中正确看到表情符号图标;有任何想法吗?

有人可以帮忙吗?

谢谢

0 投票
3 回答
16161 浏览

ios - IOS无法正确解码json格式的emoji unicode,Emoji图标显示为方块

我正在开发一个 iPhone 应用程序,该应用程序允许人们使用 Emoji 图标发送消息。我用字符集utf8mb4和排序规则utf8mb4_unicode_ci将图标保存在Mysql中,并且所有表情符号图标都正确保存在我的数据库中。但是,当我将 json 返回到客户端 (php json_encode) 时,表情符号被编码为如下所示:'\ud83d\ude04',iPhone 将其显示为正方形。但是,如果我以 XML 格式返回,表情符号图标不会变成这样的 unicode:'\ud83d\ude04',它只是图标。

我想知道这是我的服务器上还是我的客户端上的问题。如果是我的客户,对象 c 如何正确解码。

有人可以帮忙吗?

谢谢

0 投票
1 回答
1836 浏览

java - 在 Linux 上将 MySQL 字符集更改为 UTF8,以便它可以与 JDBC 一起使用

我的应用程序可以部署在 Win\Linux 上,使用 MySQL 5.5,它可以存储不同语言的数据。

我将 MySQL 服务器更改为将以下字符集变量设置为 UTF8:

  • character_set_client
  • 字符集连接
  • 字符集连接
  • 字符集数据库
  • 字符集结果
  • character_set_server
  • 字符集系统

为此,我在 my.ini 中添加了以下内容:

它在 Windows(MySQL 5.5.21 64 位)上运行良好,但是当我的应用程序在 Linux(MySQL 5.5.2 64 位)上运行时,我收到以下错误:

任何人都知道'utf8mb4'来自哪里,我该如何克服这个?

JDBC 驱动程序:'mysql-connector-java-5.1.18-bin'

0 投票
1 回答
1054 浏览

mysql - MySQL 中 utf8 中没有的 utf8mb4 中有什么?

似乎无法在网上找到任何资源来说明 MySQL 的 utf8mb4(4 字节 utf8)中哪些语言/字符不在 utf8(3 字节 UTF8)中。

有人可以解释一下 utf8mb4 附带了哪些额外的语言/字符支持吗?

0 投票
2 回答
4678 浏览

ruby - 如何在 Ruby 中删除 4 字节 utf-8 字符?

由于 MySQL 的 utf8 不支持 4 字节字符,我正在寻找一种方法来检测和消除 Ruby 中字符串中的任何 4 字节 utf8 字符。我知道我可以更新我的表以使用 utf8m4 但由于几个原因这是不可能的或所需的解决方案。

简单地将字符串编码为 ASCII 将删除这些字符,但也会删除所有其他非 ASCII 字符,这是不好的。

0 投票
2 回答
9946 浏览

php - php 可以检测 4 字节编码的 utf8 字符吗?

我在 mysql 5.1 服务器中使用 utf8 charset mysql 表,它不支持表中的 utf8mb4 编码。当插入 4 字节编码的 utf8 字符时,例如"","","","","","唧","". 该表将弹出错误或跳过以下文本。

如何以编程方式检测 PHP 中 4 字节编码的 utf8 字符并替换它们?

0 投票
1 回答
7422 浏览

spring - Spring MVC 和 Thymeleaf 应用程序的 UTF8MB4 字符编码

按照 Mathias Bynens 的这篇文章中的说明,我能够在我的 MySQL 数据库中存储 utf8mb4 字符。

我可以在 Netbeans 的调试模式下看到从数据库返回到我的控制器的 utf8mb4 字符(例如:♥)。

我的 web.xml 配置。注意:将配置设置为 UTF-8 可以正常工作,但不能使用 UTF8MB4。我也试过小写的 utf8mb4

百里香叶配置

这是我的休眠连接 url,我认为它工作正常,因为我可以看到在 Netbeans 调试模式下测试返回的正确字符。

当我在 web.xml 中有 UTF8MB4 配置时,会发生此运行时错误

删除 web.xml UTF8MB4 配置会在

编辑:这里是mysql变量

0 投票
1 回答
2963 浏览

mysql - MySQL 5.5 连接器/J 字符集编码 (utf8mb4) 问题

我正在尝试将 utf8mb4 字符串正确存储到 MySQL 5.5.30 中。我们使用的是 ConnectorJ 5.1.18。

根据文档,ConnectorJ 应该根据 character_set_server 变量自动检测字符编码...

但是,据我所知,它始终默认为

SET NAMES latin1 而不是 SET NAMES utf8mb4

连接器-j 分析器的日志输出:

SHOW VARIABLES 调用的输出如下:

服务器当前正在运行,因此要更新我简单运行的 character_set_server 值

述。

更新:当我更改 my.cnf 中的 character_set_server 值并重新启动我的服务器时,ConnectorJ 会完全按照预期检测到 utf8mb4。

当我使用 SET GLOBAL 手动设置值时,ConnectorJ 继续使用 Latin1。

有人知道为什么会这样吗?有没有办法以 ConnectorJ 检测到的方式更新字符集,而不必让 mysql 脱机?