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

mysql - mysql将默认字符集latin1更改为utf8

我有 PHP 5.5.9 和 MySQL 5.5.43 Innodb。这是在 Kubuntu LTS /etc/mysql/my.cnf

printf("当前字符集:%s\n", mysqli_character_set_name($conn));

当前字符集:latin1

我试过了

默认字符集 = utf8

首先但后来我的mysql服务器没有重新启动

然后我试过了

字符集服务器 = utf8

然后我的 mysql shell 没有启动

我该如何挽救这个问题?我已经使用 init_connect = 'SET NAMES utf8' 解决了非root用户的问题,但字符集保持不变(它只显示为非特权用户UTF8,它仍然是Latin1)。

如果(一个很大的如果)smnd 可以告诉我应该在哪里使用 utf8mb4?也在 my.cnf 文件中?我有我的表在 utf8 中,并将我正在使用的那些迁移到 utf8mb4 ...

另一个问:是否适用于 Linux (Kubuntu) 服务器: https ://www.youtube.com/watch?v=3M1Wpw4uOoM

请帮助我,谢谢,来自 lilaum.com 的 Gregor

0 投票
1 回答
552 浏览

php - Mysql UNIQUE KEY constraint - a and å are treated as the same characters

I have a unique key on a column. When I insert a and then å it throws an error:

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'å' for key 'constraint-1'' in ..

....But a and å are different UTF characters - so what's going on....?

table has DEFAULT CHARSET=utf8mb4 and utf8mb4_unicode_ci collation.

0 投票
1 回答
811 浏览

mysql - 迁移时如何获得对 utf8mb4 的 mysql 字符支持?

我正在尝试将我的 Wordpress 网站的本地版本迁移到暂存环境。我正在使用'wp migrate db'来做到这一点。这涉及通过 phpmyadmin 上传数据库。这样做时,我收到一条错误消息:

1115 - 未知字符集:'utf8mb4'

我已经检查了下面的线程,但是这家伙似乎只是将他的字符集更改为 utf8。我想知道如何升级 mysql 以支持 utf8mb4?或者这甚至是最好的解决方案?最终,我只想将我的本地站点迁移到我的子域上的暂存环境。我尝试使用复制器插件执行此操作,但也收到“字符集 utf8mb4”错误。所以看来这就是罪魁祸首。

我调查了以下线程。这家伙只是将他的字符集从 utf8mb4 更改为 utf8。我也试过这样做。我查看了 header.php,它已经只使用了一个 utf8 字符集。但仍然得到同样的错误。不知道为什么。

错误 1115 (42000):未知字符集:'utf8mb4'

这仅仅是与 mysql 上的 utf8mb4 支持有关的问题吗?或者有没有办法在不遇到这个问题的情况下迁移我的网站?

0 投票
1 回答
3508 浏览

mysql - 存储过程 collat​​ion_connection 是 utf8mb4_general_ci 而不是 utf8mb4_unicode_ci 使用 Hiedisql mysql

我正在使用 Hiedisql V9.2。

我设置了默认服务器character-set is utfmb4collation is utf8mb4_unicode_ci但在创建存储过程后仍然显示collation_connection =utf8mb4_general_ci

下面是服务器 my.ini 设置。

显示变量,其中 Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collat​​ion%';

创建存储过程后仍然显示collation_connection=utf8mb4_general_ci

那么,如何解决collation_connection=utf8mb4_general_ci问题。

我想要collation_connection=utf8mb4_unicode_ci

0 投票
1 回答
996 浏览

mysql - mysql utf8mb4_unicode_ci 导致唯一键冲突

我有一张这样的桌子

我插入两行

注意,第二个 K 是 unicode 字符

为什么它们会导致唯一键冲突?它们在 utf8mb4 中不是不同的字符吗?

删除 COLLATE utf8mb4_unicode_ci 后,问题就消失了。

0 投票
1 回答
1182 浏览

java - 如何在 Hibernate SessionFactory 创建新连接后立即运行 SQL 查询?

我的服务器使用 Hibernate 来连接到 MySQL 数据库。我还使用 c3p0 进行连接池。我想在创建时对每个连接执行一次特定的 sql 查询,但由于我使用ComboPooledDataSource的是 ,因此无法检测何时创建新会话。我发现我可以通过在结帐时启用测试连接来运行我的查询,并将我想要运行的查询设置为首选测试查询(但它可以运行多次)。

有没有更优雅的方法来实现这一点?

* 编辑 *

我试图让我的数据库接受 utf8mb4 字符。可接受的方法是将以下内容应用于 my.cnf 文件:

问题是除了我的数据库之外我无权访问任何东西,所以我的解决方案是SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;为每个连接执行。

0 投票
1 回答
664 浏览

database - Wordpress 内容出现在前端,但不是要在管理员中编辑的内容

这是我最近遇到的一个问题的答案。

背景

我最近将我的 Wordpress 站点从本地计算机迁移到 siteground.com 上的服务器。我使用插件复制器进行迁移。每次我尝试迁移时,网站都会在前端正确显示(除了很多菱形中的问号替换某些字符。)在后端我可以看到所有页面并单击以进行编辑。一旦进入特定页面的管理员编辑屏幕,就不会出现任何内容!我可以单击修订并查看修订历史记录,但实际内容框中不会出现任何内容。按更新将清除该页面内容。

潜在原因

数据库错误。插件冲突。

我的原因

在我的 wp-config 中,用于创建数据库表的数据库字符集设置为

定义('DB_CHARSET','utf8mb4');

显然,Wordpress 正在将表格升级到 utf8mb4。请参阅此处进行推理,https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/

问题是我在siteground 的服务器的表设置为utf8。我的本地环境安装了新的 wordpress,升级到了 utf8mb4。

修复

从 utf8mb4 到 utf8 的简单更改为我做到了。

0 投票
1 回答
1669 浏览

c++ - c++中的utf8mb4编码/解码

第三方服务器向我的客户端程序回显字符串,该字符串包含 utf8 数据和 unicode 表情符号(在此处列出)。例如:

例如

我用谷歌搜索了一段时间,发现这称为utf8mb4编码,用于 SQL 应用程序。

我在 mysql/python/ruby/etc 中找到了一些关于 utf8mb4 的文章......但没有 c++。是否有任何 c++ 库可以对 utf8mb4 进行编码/解码?

0 投票
1 回答
436 浏览

mysql - 法语字符的mysql utf8问题

试图在 mysql (v 5.6) 终端 windows server 2008 上的表中插入一个简单的 'é',我得到 Incorrect string value: '\x82' for column 'colum_name'

我一直在搜索堆栈溢出一天。我想我快疯了。我所有的排序规则都是 utf8mb4:

这是我添加到 my.ini 中的内容

我被困住了

0 投票
2 回答
191 浏览

php - 如何用蓬勃发展支持表情符号?

我正在为网站使用繁荣库。我的客户要求我们应该能够在手机上使用表情符号。理论上,我们应该将 MySQL 数据库的字符编码从 utf8 更改为 utf8mb4。

到目前为止,一切都很好,但是,如果我们进行此切换,如下所示:

然后每个字符将使用四个字节而不是三个字节。这将使数据库的大小增加 33%。这将导致更差的性能和更多的存储空间被用完。因此,我们决定只为特定表的特定列切换到 utf8mb4 编码。

为了确保一切正常,我检查了几件事。其中,我检查了flavourlib,发现了几个可疑的部分:

  1. 有一个fUTF8类,好像不支持utf8mb4

  2. 在 fDatabase 我引用了一些发现:

    /li>
  3. 在 fSQLSchemaTranslation 我可以看到:

    /li>

我怀疑繁荣库不支持我们使几个表的几列具有utf8mb4字符编码的任务。我想知道我们是否可以以某种方式升级某些东西来提供这种支持。作为最坏的情况,我们可以将每个文本出现的 utf8 覆盖为 utf8mb4。但是,这将是一个非常丑陋的 hack,我们想知道是否有更好的解决方案。我们应该进行这种破解还是有更正统的方法?