相关疑难解决方法(0)

utf8_general_ci和utf8_unicode_ci之间有什么区别?

utf8_general_ci和之间utf8_unicode_ci,性能方面有什么不同吗?

mysql unicode collation utf-8 character-set

998
推荐指数
7
解决办法
38万
查看次数

如何在mysql中插入utf-8 mb4字符(表情符号在ios5中)?

我使用的是mysql 5.5.10,它的character_sets是

| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8mb4_general_ci         |
| collation_database       | utf8mb4_general_ci         |
| collation_server         | utf8mb4_general_ci         |
Run Code Online (Sandbox Code Playgroud)

我从utf8为iOS5的表情符号改变了utf8mb4.它们由4byte代码表示.

但当我插入3个笑脸表情符号时,'???' 在mysql中.

它们是3F 3F 3F(Hex).

我可以很好地存储iOS4的表情符号,但不能存储iOS5的表情符号.

我怎么能存储iOS5的表情符号?

请帮我.

mysql iphone ios5 utf8mb4

56
推荐指数
2
解决办法
8万
查看次数

Mysql2 ::错误:字符串值不正确

我有一个在生产模式下运行的rails应用程序,但是当用户试图保存记录时,突然出现了这个错误.

Mysql2::Error: Incorrect string value
Run Code Online (Sandbox Code Playgroud)

更多细节(来自生产日志):

Parameters: {"utf8"=>"â<9c><93>" ... 

Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k 

Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k 
Run Code Online (Sandbox Code Playgroud)

现在我看到了一些需要删除数据库并重新创建数据库的解决方案,但我不能这样做.

现在mysql显示了这个:

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec) …
Run Code Online (Sandbox Code Playgroud)

ruby mysql encoding ruby-on-rails

55
推荐指数
3
解决办法
4万
查看次数

Mysql:设置列charset

我有一个现有的表,我想只将一个特定列的字符集转换为utf-8.

我知道这个命令ALTER TABLE table_name CONVERT TO CHARACTER SET utf8是为整个表做的,但我正在寻找一个特定于列的命令.

那是否有命令?

mysql utf-8 character-encoding

40
推荐指数
2
解决办法
4万
查看次数

表达式utf8mb4没有在MySQL 5.6中正确存储表情符号

我试图将表情符号存储到我的服务器中的数据库中.我使用AWS EC2实例作为服务器,我的服务器详细信息如下:

操作系统:ubuntu0.14.04.1

MySQL版本:5.6.19-0ubuntu0.14.04.1 - (Ubuntu)

数据库客户端版本:libmysql - mysqlnd 5.0.11-dev - 20120503

我使用以下SQL在服务器中创建了一个数据库测试和表格表情符号:

CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `test`;

CREATE TABLE IF NOT EXISTS `emoji` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `text` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)

当我尝试执行以下插入时,会出现警告并且数据未正确存储:

INSERT INTO  `test`.`emoji` (`id` , `text`) VALUES (NULL ,  '   ');
Run Code Online (Sandbox Code Playgroud)

插入的行ID:3

警告:#1366字符串值不正确:'\ xF0\x9F\x91\x86\xF0 ...'代表第1行的'text'列

存储在文本列中的值为:???? ???? ???? ????

相同的方案适用于我的本地数据库,并且值正确存储.除了操作系统(Windows)之外,我的本地几乎所有配置都相似.

mysql collation character-encoding emoji utf8mb4

5
推荐指数
1
解决办法
1489
查看次数

在 MySql 数据库中存储表情符号。显示???在 phpmyadmin 中

显示问号???同时将表情符号存储在 MySQL 数据库中。我已经将数据库和表的排序规则设置为 utf8mb4。但是,它仍然显示??????而不是数据库中的表情符号。我还尝试更改 PHPMYADMIN 控制台中的现有行。但没有任何效果。显示???而不是 Unicode 字符。我还更改了表的存储引擎。InnoDB、MyISAM

SET NAMES utf8mb4;

ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

表结构和所有元素

html php mysql database phpmyadmin

3
推荐指数
1
解决办法
1万
查看次数

Yii 2 不从 mysql 数据库渲染表情符号

我有一个 Yii 2 应用程序,当我从数据库中获取数据时,表情符号没有呈现。它作为表情符号很好地存储在我的数据库中,但在我看来不是。它作为 ? 特点。

在我的脑海里我有

<meta charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

解决方案

进入您的数据库配置文件(您在其中设置数据库名称和密码)并将字符集更改为 utf8mb4

php yii2

1
推荐指数
1
解决办法
1151
查看次数

表情符号字符()在MySQL 5.6版中不能与utf8mb4_bin一起使用

我试图将表情符号保存到数据库记录,但每次都没有正确保存.我已经参考了如何在我的SQL数据库中存储表情符号字符,但仍然无法正常工作.
根据上述问题的解决方案,我尝试将字符集从utf8更改为utf8mb4,并将字符集从utf8mb4_bin更改为.

我尝试了一切,比如重置为默认值,然后在数据库表中更改它.我试过utf8mb4_unicode_ci,utf8_unicode_ci和utf8mb4_bin,但它没有用.

我正在使用MySQL 5.6版本.我正在使用以下查询更改排序规则

alter table `users` convert to character set utf8mb4 collate utf8mb4_bin;
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,它正在改变数据库中的UTF类型.但是表情符号没有正确保存它作为问号保存(????)

下面是我的数据库表结构示例:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated id used for uniqueness',
  `introduction` longtext COLLATE utf8mb4_bin,
  `other_details` longtext COLLATE utf8mb4_bin,    
   PRIMARY KEY (`id`),
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41213 ;
Run Code Online (Sandbox Code Playgroud)


使用以下PHP代码保存表情符号:

$dom = new DOMDocument('1.0', 'UTF-8');
$strWithEmoji = "";
$fullContent = '<meta http-equiv="content-type" content="text/html; charset=utf-8">'
               + $strWithEmoji;
$this->save($fullContent); // Function for saving into …
Run Code Online (Sandbox Code Playgroud)

php mysql utf-8 utf utf8mb4

-2
推荐指数
1
解决办法
8775
查看次数