
之前已经参考过很多文献和帖子,如[t/137724]等
我正在本机进行测试:
1. 修改my.ini [mysql] default-character-set = utf8mb4 [mysqld]character-set-server=utf8mb4
2. 重启mysql,检查mysql版本为5.6
3. 做了一个Demo PHP脚本,在Safari和Google Chrome浏览器中进行测试:
创建一个数据库*test2*,创建表*test*:
test
CREATE TABLE(id
int(10) unsigned NOT NULL AUTO_INCREMENT,content
text COLLATE utf8mb4_unicode_ci NOT NULL,id
PRIMARY KEY ()
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
PHP脚本尝试存入和取出:
`
<?php
header("Content-type:text/html;charset=");
mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('SET CHARSET utf8mb4');
if($_POST){
//insert table
mysql_query('INSERT INTO test(content)VALUES('.$_POST['emoji'].')');
echo '<p>Sql:INSERT INTO test(content)VALUES(\''.$_POST['emoji'].'\')</p>';
}
$result = mysql_query("select * from test order by id DESC");
echo '<ul>';
while($row = mysql_fetch_assoc($result)){
echo '<li>'.$row['content'].'</li>';
}
echo '</ul>';
?>
<style style="text/css">
* {
padding: 0px;
margin: 0px;
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
}
</style>
加油!你的目标是实现录入(如果你看不到,说明你浏览器不支持)!
<form action="" method="post">
<input type="post" name="emoji"> <input type="submit" value="click me"> </form>
`
脚本效果:
http://i.imgur.com/Yn8JaL3.png
数据插入效果:
http://i.imgur.com/SG8L5ph.png
mysql版本:
http://i.imgur.com/3h5iAvk.png
1 xiezefan 2015-04-28 01:00:59 +08:00 via iPad 楼主你要考虑,但很多时候, 线上的数据库是不能随便修改数据库文件的←_← |
2 littlehz 2015-04-28 10:27:55 +08:00 utf8mb4字符集是趋势,手机上都支持Emoji,如果自己写表情替换占位符太麻烦,不如直接上utf8mb4。 |
4 cvmax 2015-04-28 13:09:09 +08:00 @konakona 1L说的有关系啊 “1. 修改my.ini [mysql] default-character-set = utf8mb4 [mysqld]character-set-server=utf8mb4” “线上的数据库是不能随便修改数据库文件的” |
5 RIcter 2015-04-28 14:18:28 +08:00 via iPhone 然後 Wordpress 的各 XSS 就出了 |
6 jadecoder 2015-04-28 16:53:54 +08:00 如果改字符集不方便的话,把字段设成BLOB就可以了 |