[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, 故在创 ...
随机推荐
- Nginx HTTP变量原理
L:72 首先如何获取url追加参数值 如: http://www.xxx.com?a=1&b=2 return '$arg_a, $arg_b'; #通过前缀 arg_a 就能获取到 参数a ...
- chrome常用扩展程序汇总(程序员版)
chrome常用扩展程序之程序员版 1.chrome扩展程序 Chrome插件是一个由Web技术开发.用来增强浏览器功能的小程序,其实就是一个由HTML.CSS.JS.图片等静态资源组成的一个.crx ...
- [洛谷P1006] 传纸条
双线程DP的常识:DP的阶段问题:多阶段决策问题 传送门:$>here<$ 题意 n*m的矩阵里,从左上角走到右下角(只能往右或往下),再从右下角走回左上角(只能往左或往上).其中不能重复 ...
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
执行Git命令时出现各种 SSL certificate problem 的解决办法 来源 https://www.cnblogs.com/chenzc/p/5842932.html 比如我在win ...
- 题解 P4783 【【模板】矩阵求逆】
题目大意 求一个N×N的矩阵的逆矩阵.答案对10^9+7取模.N<=400 前置知识 矩阵的初等变换 矩阵的逆定义为 A*B=E(E为单位矩阵)此时B为A的逆 思路 如果矩阵有逆 那么这个矩阵经 ...
- windows下安装oracle11g测试是否成功与监听器问题和网页控制台登录
测试步骤1:请执行操作系统级的命令:tnsping orcl 测试步骤 2:请执行操作系统级的命令:sqlplus system/password@orcl 安装完oracle后要启动oracle服务 ...
- 把xml数据直接插入到sqlserver数据库
存储过程: ALTER proc [ali].[ins_冻结金额表] @xmldoc varchar(max), ) as declare @idoc int exec sp_xml_prepared ...
- windows类似grep的命令——findstr
windows类似grep的命令——findstr 使用Chrome发现访问google总是向香港那边跳转,估计配置文件中google网站映射的地址是www.google.com.hk,便想着改配 ...
- Nacos集群环境的搭建与配置
Nacos集群环境的搭建与配置 集群搭建 一.环境: 服务器环境:CENTOS-7.4-64位 三台服务器IP:192.168.102.57:8848,192.168.102.59:8848,192. ...
- sk-learn 决策树的超参数
一.参数criterion:特征选择标准,[entropy, gini].默认gini,即CART算法. splitter:特征划分标准,[best, random].best在特征的所有划分点中找出 ...