问题标签 [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 回答
632 浏览

mysql - 是否可以为特定表格的特定列启用表情符号?

首先,我想向您保证,我已经完成了我的“功课”并且已经阅读了这个这个这个这个。另外,我以前的一个问题与这个问题密切相关,但在那个问题中,我正在处理繁荣库与 utf8mb4 的兼容性问题。这个问题涉及更深层次的问题。假设我有几张表,我只想修改几列以使用 utf8mb4 编码,以在更改后保留一些存储空间和性能。如果我将整个数据库更改为 utf8mb4 编码,那么它的大小将增加 33%,这也会严重影响其性能。因此,我们从三个不同的表格中选择了四列来支持表情符号。这些是:

  • users.bio(小文本,utf8_general_ci)
  • questions.question(长文本,utf8_general_ci)
  • questions.answer(长文本,ut8_general_ci)
  • comments.comment(小文本,utf8_general_ci)

因此,我的行动计划如下:

  1. 创建数据库的备份

  2. 运行这些命令:

期望:

  • 这应该使指定的列使用 utf8mb4 而不是 utf8
  • 现有数据将正确转换为utf8mb4,即保留以前的文本,用户将能够正确阅读其内容
  • 其他列不会改变
  • 涉及受影响表的查询会变慢

我的预期准确吗?我需要更改连接吗?谢谢

0 投票
2 回答
215 浏览

mysql - 切换到 utf8mb4 后 MySQL INSERT 缺少信息

我到处寻找答案,但似乎仍然找不到

服务器:本地主机
MySQL 版本:5.6.17

我已将我的 db 表设置为utf8mb4,以便获得更多的字符可能性。当我将某些散列信息插入到我的表中时,根据字符串中的随机字符序列,实际上只有字符串的一个片段被插入(如果没有完全留空)。

在我的 pdo 语句句柄中,我在准备查询之前执行了 charset=utf8mb4 ,并且作为故障保险,我之前也 SET NAMES utf8mb4 。所以我认为CHARSET和COLLATE的一切都应该是洁净的。

所以我的问题是,我应该怎么做才能成功地将整个字符串放入字段中?是否有一些字符转义我应该这样做我失踪了?

编辑:当我将字符串复制/粘贴到 phpmyadmin 中时,它成功地将整个字符串放入字段中。

0 投票
1 回答
596 浏览

mysql - MySQL 表 COLLATION utf8_turkish_ci 到 utf8_general_ci

我有 2 张桌子,我想加入这些桌子。但是一个表排序规则是utf8_turkish_ci另一个是utf8_general_ci。这些表很大(2.9GB / 550MB)所以我不想在查询中使用“ COLLATION ”关键字,因为它对我的查询减速。

我的问题是:如果我将表 COLLATION 从 utf8_turkish_ci 更改为 utf8_general_ci 那么乱码或更改行中的任何字符?

谢谢

0 投票
1 回答
739 浏览

php - PHP 的 utf8_encode() 会删除表情符号吗?

我已经使用 Mathia 的指南将我的 mysql 数据库/表/列转换为 utf8mb4:https ://mathiasbynens.be/notes/mysql-utf8mb4

我正在专门抓取 instagram 结果,并在坚持之前使用 utf8_concode() 。

这个 PHP 方法是否支持 4 字节表情符号?持久化后,我仍然无法渲染表情符号。

0 投票
1 回答
672 浏览

mysql - 在 mysql 中将 TEXT 列的字符集从 utf8 转换为 utf8mb4 是否安全?

我正在尝试将大型生产数据库中的 TEXT 列的字符集从 utf8 转换为 utf8mb4 以支持表情符号。

我已经读过,对于 varchar 列,我们需要计算并在 alter 命令中提供不同的大小。但我找不到任何关于 TEXT 列的信息。

TEXT 列存储在表格之外,所以我可以继续使用 alter 命令还是有什么需要考虑的?

0 投票
4 回答
26115 浏览

mysql - #1115 - 未知字符集:'utf8mb4'

我在我的电脑上运行了一个本地网络服务器,用于本地开发。我现在正处于导出数据库并导入到我的托管 VPS 的阶段。

导出然后导入时出现以下错误!

1115 - 未知字符集:'utf8mb4'

有人可以指出我正确的方向吗?

0 投票
0 回答
372 浏览

php - 如何将 4 个字节的表情符号保存到 mysql 中?

mysql 版本5.5.41 (MariaDB)

我已将表格转换为 utf8mb4,但我的 col (msg_desc) 数据仍显示 ???? 当我尝试保存 4 个字节的表情符号时。如何解决这个问题呢?

0 投票
1 回答
7724 浏览

mysqli - 使用 PHPMyAdmin 将 MySQL-Charset 从 utf8 更改为 utf8mb4

当我想用 PHPMyAdmin 将 MySQL-Charset 从 utf8 (utf8_general_ci) 更改为 utf8mb4 (utf8_unicode_ci) 时,我做这些事情就足够了吗?

  1. 将数据库排序规则更改为“utf8_unicode_ci”
  2. 将表排序规则更改为“utf8_unicodel_ci”
  3. 将每个文本列更改为“utf8_unicodel_ci”
  4. 将我的 PHP 代码中的 set_charset 更改为“utf8mb4”

这是正确的还是缺少什​​么?哪里会出现问题?

0 投票
2 回答
177 浏览

linkedin - 通过 LinkedIn 共享 API 发送表情

我尝试通过共享 API 将 utf8mb4 字符(例如)发布到 LinkedIn。但我总是得到“XML 中的非法字符”作为响应。已经尝试使用 CDATA 来“逃避”它,但它没有帮助。

直接在 LinkedIn 中发布这些字符时,它可以工作。:-/

任何想法?没有这些字符的发布没有问题。

0 投票
1 回答
8685 浏览

mysql - PHP PDOException: SQLSTATE[HY000] [2019] 无法初始化字符集 utf8mb4

我在 Centos 6 上安装了 drupal 8。这是我的 php 和 mysql -version 输出

服务器版本:5.7.9 MySQL 社区服务器(GPL)PHP 5.6.14(cli)(构建:2015 年 10 月 16 日 08:41:09)

但我仍然收到连接错误

PDOException: SQLSTATE[HY000] [2019] 无法在 /var/www/m2m/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php 中初始化字符集 utf8mb4(路径:/usr/share/mysql/charsets/)在第 83 行

我的 OS X Mysql Server 版本上也有此配置:5.6.27 Homebrew 和 PHP 5.6.15 (cli)(构建时间:2015 年 10 月 31 日 07:39:39)

一切都很好。

你有什么主意吗?任何帮助将不胜感激