经过多次转手的6s玫瑰金 粉色好iPhone 6s会变黑吗

推荐这篇日记的豆列
······查看: 1712|回复: 5
现在需要把数据库从utf8变成utf8mb4,官方能给个解决方案吗
现在需要把数据库从utf8变成utf8mb4,官方能给个解决方案吗
你把数据库转换下 不行吗?
你把数据库转换下 不行吗?
数据库直接转换没用,必须要把表里面的字段转换,现在就是不知道如何一次性转换,另外我手工一张一张表转的时候,还报错了,说什么长度大于1000,
你把数据库转换下 不行吗?
[Err] 1071 - Specif max key length is 1000 bytes
:'(:'(:'(现在手机版网站如果用手机在上面发手机自带的表情,系统会错误的,就是因为utf8mb4,所以数据库需要转换成utf8mb4才行
Powered byMySQL 编码为 utf8mb4 的详细步骤 - 简书
MySQL 编码为 utf8mb4 的详细步骤
这是我们的,忘记原文在哪里了。
desc "Database related tasks"
namespace :database do
desc "Convert to utf8mb4"
task convert_to_utf8mb4: :environment do
connection = ActiveRecord::Base.connection
database = connection.current_database
connection.execute "ALTER DATABASE #{database} CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_"
puts "Converted #{database} character set"
# Change all tables
connection.tables.each do |table|
connection.columns(table).each do |column|
if column.sql_type == "varchar(255)"
puts "#{column.name} is varchar(255)"
# Check for 255 indexed columns
connection.indexes(table).each do |index|
if index.columns.include?(column.name)
puts "#{column.name} has index, altering length..."
connection.execute "ALTER TABLE #{table} CHANGE `#{column.name}` `#{column.name}` varchar(191);"
puts "...done!"
puts "Converting #{table}..."
connection.execute "ALTER TABLE #{table} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_"
puts "...#{table} converted!"
connection.columns(table).each do |column|
if column.type == :string || column.type == :text
puts "Converting #{column.name}..."
connection.execute "ALTER TABLE #{table} CHANGE `#{column.name}` `#{column.name}` #{column.sql_type} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_"
puts "...#{column.name} done!"
puts "Repairing #{table}..."
connection.execute "REPAIR TABLE #{table};"
puts "...#{table} repaired!"
puts "Optimizing #{table}..."
connection.execute "OPTIMIZE TABLE #{table};"
puts "...#{table} optimized!"新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 19, 距离下一级还需 181 积分
论坛徽章:0
本帖最后由 cenalulu 于
09:44 编辑
刚看到一篇Mysql字符集的帖子, 顺道分享下最近业务上碰到的一个字符集问题.
我们的平台使用mysql-5.5.14 + php搭建, 同时php开放了api接口供iPhone/iPad等客户端调用.
偶然一次, 发现用户发布的数据被截断, 跟踪日志发现是4字节的utf8字符, 经查, mysql在5.5.3之前不支持4字节utf8字符.
由于我们的mysql版本支持4字节, 所以解决就是升级字符集为utf8mb4.
下面是解决问题过程中总结的一些现象:
4字节utf8字符的支持情况:
1. windows xp: 我所测试的xp系统都不支持4字节utf8字符, 浏览器用占位符显示
2. windows 7: 支持4字节utf8字符
3. mac os x: 支持4字节utf8字符
4. iPhone/iPad: 支持4字节utf8字符
1. php连接会话设置编码utf8, mysql后端字段为text character set utf8: 写入内容从4字节utf8字符处被截断
2. php连接会话设置编码utf8mb4, mysql后端字段为text character set utf8: 内容可以完整写入, 但是4字节utf8字符被替换为问号&?&
3. php连接会话设置编码utf8mb4, mysql后端字段为text character set utf8mb4: 完整支持4字节utf8字符
从平台支持上来看, 随着winxp的逐步淘汰, 对4字节utf8字符的支持还是有必要的.
官方手册对utf8mb4字符的说明中指出, utf8mb4是utf8的超集, 因此可放心升级.
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp扫一扫,访问微社区
查看: 1207|回复: 6
云币29 威望6 最后登录积分65注册时间帖子
小白[LV1], 积分 65, 距离下一级还需 235 积分
云币29 威望6
本帖最后由 williamegger 于
16:32 编辑
为了支持emoji表情符号,想将MySQL数据库字符集从utf8转到utf8mb4,改了一通还是不对,到底如何设置utf8mb4?
我也看过论坛中的帖子,执行的命令如下:
SET @@global.character_set_client = utf8mb4;
SET @@global.character_set_results = utf8mb4;
SET @@global.character_set_connection = utf8mb4;
SET @@global.character_set_server = utf8mb4;
SET @@session.character_set_client = utf8mb4;
SET @@session.character_set_results = utf8mb4;
SET @@session.character_set_connection = utf8mb4;
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_
ALTER TABLE table_name MODIFY COLUMN column_name&&varchar(256) CHARACTER SET utf8mb4 NULL DEFAULT NULL;
执行完依旧无效。
查询变量:
show global&&variables like 'character_set_%'
[td]character_set_clientutf8mb4character_set_connectionutf8mb4character_set_databaseutf8mb4character_set_filesystembinarycharacter_set_resultsutf8mb4character_set_serverutf8mb4
character_set_systemutf8
show session&&variables like 'character_set_%'
[td]character_set_clientutf8character_set_connectionutf8character_set_databaseutf8mb4character_set_filesystembinarycharacter_set_resultsutf8character_set_serverutf8mb4character_set_systemutf8
请问到底如何使配置生效?
有 1 人觉得本主题有帮助
云币5205 威望16615 最后登录积分16615注册时间帖子
云币5205 威望16615
CDB控制台可以直接修改 实例列表-&管理-&字符集更改&&可以更改为utf8mb4
云币29 威望6 最后登录积分65注册时间帖子
小白[LV1], 积分 65, 距离下一级还需 235 积分
云币29 威望6
谢谢maybe,实例列表-&管理-&字符集,已经改成utf8mb4了,依旧是无法插入表情符号
云币10207 威望5478 最后登录积分20868注册时间帖子
云币10207 威望5478
管理台设置的截图可以给看下吗
云币29 威望6 最后登录积分65注册时间帖子
小白[LV1], 积分 65, 距离下一级还需 235 积分
云币29 威望6
本帖最后由 williamegger 于
11:57 编辑
denniszyang 发表于
管理台设置的截图可以给看下吗
程序还是不能插入表情符号
&如果数据库能插入说明字符集没有问题,看看程序是否对插入内容进行了处理&
云币5205 威望16615 最后登录积分16615注册时间帖子
云币5205 威望16615
williamegger 发表于
程序还是不能插入表情符号
如果数据库能插入说明字符集没有问题,看看程序是否对插入内容进行了处理
云币29 威望6 最后登录积分65注册时间帖子
小白[LV1], 积分 65, 距离下一级还需 235 积分
云币29 威望6
谢谢,问题以解决
Powered by}

我要回帖

更多关于 6s粉色和玫瑰金一样吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信