[MySQL]如何支持utf8格式的UCS4unicode字符
filed中必须是CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
连接时必须set names "utf8mb4";
这是一段PHP示例
<?php
//$emoji_1 = "?????2\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9f\x8d\x8c";
//$emoji_1 = "zß\u6c34\U0001f34c";
$emoji_1 = "\xf0\x9f\x8d\x8c";
$dbh = new PDO( 'mysql:host=localhost;dbname=test', 'root', '' );
$dbh->exec(' set names "utf8mb4" ');
$tablename = "test_9"; if($_GET['show'] == 1){
$query = 'select * from `'.$tablename.'` where `id` = ?'; $stm = $dbh->prepare($query);
$stm->bindValue(1, $_GET['id'], PDO :: PARAM_INT );
$stm->execute();
while($row = $stm->fetch( PDO :: FETCH_ASSOC )){
var_dump($row);
}
}else{
$query = 'insert into `'.$tablename.'` (`name`, `a`)values(?, ?)';
var_dump(strlen($emoji_1));
$stm = $dbh->prepare($query);
$stm->bindParam(1, $emoji_1, PDO :: PARAM_STR, strlen($emoji_1));
$stm->bindValue(2, 3, PDO :: PARAM_INT );
if(!$stm -> execute ()){
var_dump($stm -> errorInfo ());
}else{
echo "okay.\n";
}
}
附:
MySql中可以用UNHEX(FF...)插入HEX值,HEX值不会经过处理直接,写入内容。例如插入一个UTF8字符,输入的是这个字符的UTF8编码,而不是unicode编码
INSERT INTO my_tbl (my_col) VALUES (UNHEX('F09F949F'));
[MySQL]如何支持utf8格式的UCS4unicode字符的更多相关文章
- mysql修改为utf8格式
1.修改相应数据库的编码格式: -- 修改数据库编码为utf8 ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ ...
- php截取字符串的实例代码(支持utf-8)
分享下php中截取字符串的例子,支持utf-8格式. 1,截取字符串 <?php $string="2006年4月我又长大了一岁!"; echo substr($string ...
- MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
开心一刻 产品还没测试直接投入生产时,这尼玛... 背景问题 在讲 binlog 之前,我们先来回顾下主流关系型数据库的默认隔离级别,是默认隔离级别,不是事务有哪几种隔离级别,别会错题意了 1.Ora ...
- 关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析
原文:http://my.oschina.net/leejun2005/blog/343353 目录[-] 1.问题:mysql 遇到某些中文插入异常 2.原因:此 utf8 非彼 utf8 3.解决 ...
- 字符截取 支持UTF8/GBK
); $n = $tn = $noc = ; || $t == || ( <= $t && $t <= )) { ...
- MySQL创建数据库[保存mojo格式的数据库]已经常用的utf8格式数据库
一.创建最新编码utf8mb4格式的库: CREATE DATABASE IF NOT EXISTS yourdbname CHARACTER SET utf8mb4 COLLATE utf8mb4_ ...
- 在mysql 中使用utf8的问题
在MapReducer插入mysql 遇到了 Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentConte ...
- 【记录】mysql中建表utf8和utf8mb4区别?timestamp和datetime区别?
mysql中建表utf8和utf8mb4区别? 1:utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面 2:要在 Mysql 中 ...
- linux 设置mysql 数据库编码utf8
转载地址http://www.linuxidc.com/Linux/2015-08/121676.htm在MySQL数据库中, 当插入数据无法支持中文时, 可将该数据库的编码集设置为utf8, 故在创 ...
随机推荐
- flutter 监听返回键
### 监听手机返回键(双击退出) ``` import 'package:fluttertoast/fluttertoast.dart'; //提示插件 class WillPopScopeTest ...
- 判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)
<?php // *** 配置文件(表示区域的三维数组)其内的点,必须按顺时针方向依次给出! $area = array( // 天通苑店 0 => array( array('x'=&g ...
- Git 之 恢复修改的文件
对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即 仓库区 ----> 暂存区 ----> 工作区. 对于修改的文件有两种情况: 只是修改了文件,没有任何 git 操作 修改了文件, ...
- Spring MVC 使用介绍(十二)控制器返回结果统一处理
一.概述 在为前端提供http接口时,通常返回的数据需要统一的json格式,如包含错误码和错误信息等字段. 该功能的实现有四种可能的方式: AOP 利用环绕通知,对包含@RequestMapping注 ...
- 树莓派3B+(二)
一.安装SSH工具 这里用的是putty,下载下来是一个exe文件,点开就能用. 下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/lat ...
- LOJ2083 [NOI2016] 优秀的拆分 【哈希】【调和级数】
题目分析: 好题!我们发现题目实际是要求出从某个左端点开始跑出去的BB型有多少个和从某个右端点开始跑出去的AA型有多少个. 发现这个问题是对称的,所以只考虑从左端点跑出去的BB型有多少个就可以了. 我 ...
- 【XSY3309】Dreamweaver 高斯消元 拉格朗日插值
题目大意 这是一道通信题. 给你 \(8\) 个 \(32\) 位整数.加密端要把这些数加密成至少 \(1000\) 个 \(32\) 位整数,交互库会把这些整数随机打乱后发给解密端,解密端最多能获得 ...
- HTML&CSS_基础04
一.常见的选择器 1. 元素选择器 选择页面中指定的元素 2. id选择器 语法:#id属性值{} 3. 类选择器 语法:.class属性值{} 可以为同一个元素设置多个属性值,多个值之间用空格隔开 ...
- jq的on click 事件在苹果下无效
据说苹果对于点击的对象,拥有cursor:pointer这个样式的设置才算 参考地址:https://blog.csdn.net/yuexiage1/article/details/51612496
- pwn-ROP(2)
通过int80系统只对静态编译有效,动态编译需要用其他方法 本题提供了一个地址输入端,输入函数地址会返回该函数的实际地址,我们用得到的实际地址-偏移地址=基地址,然后用基地址+任意函数的偏移地址就可以 ...