MYSQL转换编码的解决方法
MYSQL转换编码的解决方法
一、在utf8的mysql下
得到中文‘游客’的gbk下的16进制编码
mysql> SELECT hex(CONVERT( '游客' USING gbk ));
-> D3CEBFCD
反推gbk的16进制编码,取回中文
mysql> SELECT CONVERT( unhex('d3cebfcd') USING gbk);
-> ’游客'
从gbk的16进制编码直接转成utf8的16进制编码
mysql> SELECT HEX(CONVERT(CONVERT( unhex('d3cebfcd') USING gbk) USING utf8));
-> 'E6B8B8E5AEA2'
二、如果在gbk的mysql环境下
得到中文‘游客’的gbk下的16进制编码
mysql> SELECT hex('游客');
-> D3CEBFCD
反推gbk的16进制编码,取回中文
mysql> unhex('d3cebfcd') ;
-> ’游客'
原理知道了,就可以写个小程序来替换进行转编码了。不过特别提醒在文本里16进制必须在头部加上0x,例如:0xD3CEBFCD才能正常使用。
ASCII(str)
- 返回字符串
str
的最左面字符的ASCII代码值。如果str
是空字符串,返回0
。如果str
是NULL
,返回NULL
。1
mysql>
select
ASCII(
'2'
);
2
-> 50
3
mysql>
select
ASCII(2);
4
-> 50
5
mysql>
select
ASCII(
'dx'
);
6
-> 100
也可参见ORD()函数。
ORD(str)
- 如果字符串str最左面字符是一个多字节字符,通过以格式
((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]
返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()
函数返回的相同值。1
mysql>
select
ORD(
'2'
);
2
-> 50
CONV(N,from_base,to_base)
- 在不同的数字基之间变换数字。返回数字
N
的字符串数字,从from_base
基变换为to_base
基,如果任何参数是NULL
,返回NULL
。参数N
解释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2
且最大的基是36
。如果to_base
是一个负数,N
被认为是一个有符号数,否则,N
被当作无符号数。CONV
以64位点精度工作。1
mysql>
select
CONV(
"a"
,16,2);
2
->
'1010'
3
mysql>
select
CONV(
"6E"
,18,8);
4
->
'172'
5
mysql>
select
CONV(-17,10,-18);
6
->
'-H'
7
mysql>
select
CONV(10+
"10"
+
'10'
+0xa,10,10);
8
->
'40'
BIN(N)
- 返回二进制值
N
的一个字符串表示,在此N
是一个长整数(BIGINT
)数字,这等价于CONV(N,10,2)
。如果N
是NULL
,返回NULL
。1
mysql>
select
BIN(12);
2
->
'1100'
OCT(N)
- 返回八进制值
N
的一个字符串的表示,在此N
是一个长整型数字,这等价于CONV(N,10,8)
。如果N
是NULL,返回NULL
。1
mysql>
select
OCT(12);
2
->
'14'
HEX(N)
- 返回十六进制值
N
一个字符串的表示,在此N
是一个长整型(BIGINT
)数字,这等价于CONV(N,10,16)
。如果N
是NULL
,返回NULL
。1
mysql>
select
HEX(255);
2
->
'FF'
CHAR(N,...)
CHAR()
将参数解释为整数并且返回由这些整数的ASCII代码字符组成的一个字符串。NULL
值被跳过。1
mysql>
select
CHAR
(77,121,83,81,
'76'
);
2
->
'MySQL'
3
mysql>
select
CHAR
(77,77.3,
'77.3'
);
4
->
'MMM'
CONCAT(str1,str2,...)
- 返回来自于参数连结的字符串。如果任何参数是
NULL
,返回NULL
。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。1
mysql>
select
CONCAT(
'My'
,
'S'
,
'QL'
);
2
->
'MySQL'
3
mysql>
select
CONCAT(
'My'
,
NULL
,
'QL'
);
4
->
NULL
5
mysql>
select
CONCAT(14.3);
6
->
'14.3'
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
- 返回字符串
str
的长度。1
mysql>
select
LENGTH(
'text'
);
2
-> 4
3
mysql>
select
OCTET_LENGTH(
'text'
);
4
-> 4
注意,对于多字节字符,其CHAR_LENGTH()仅计算一次。
LOCATE(substr,str)
POSITION(substr IN str)
- 返回子串
substr
在字符串str
第一个出现的位置,如果substr
不是在str
里面,返回0
.1
mysql>
select
LOCATE(
'bar'
,
'foobarbar'
);
2
-> 4
3
mysql>
select
LOCATE(
'xbar'
,
'foobar'
);
4
-> 0
1
该函数是多字节可靠的。
LOCATE(substr,str,pos)
- 返回子串
substr
在字符串str
第一个出现的位置,从位置pos
开始。如果substr
不是在str
里面,返回0
。1
mysql>
select
LOCATE(
'bar'
,
'foobarbar'
,5);
2
-> 7
这函数是多字节可靠的。
INSTR(str,substr)
- 返回子串
substr
在字符串str
中的第一个出现的位置。这与有2个参数形式的LOCATE()
相同,除了参数被颠倒。1
mysql>
select
INSTR(
'foobarbar'
,
'bar'
);
2
-> 4
3
mysql>
select
INSTR(
'xbar'
,
'foobar'
);
4
-> 0
这函数是多字节可靠的。
LPAD(str,len,padstr)
- 返回字符串
str
,左面用字符串padstr
填补直到str
是len
个字符长。1
mysql>
select
LPAD(
'hi'
,4,
'??'
);
2
->
RPAD(str,len,padstr)
- 返回字符串
str
,右面用字符串padstr
填补直到str
是len
个字符长。1
mysql>
select
RPAD(
'hi'
,5,
'?'
);
2
->
'hi???'
LEFT(str,len)
- 返回字符串
str
的最左面len
个字符。1
mysql>
select
LEFT
(
'foobarbar'
, 5);
2
->
'fooba'
该函数是多字节可靠的。
RIGHT(str,len)
- 返回字符串
str
的最右面len
个字符。
1
mysql>
select
RIGHT
(
'foobarbar'
, 4);
2
->
'rbar'
该函数是多字节可靠的。
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
- 从字符串
str
返回一个len
个字符的子串,从位置pos
开始。使用FROM
的变种形式是ANSI SQL92语法。1
mysql>
select
SUBSTRING
(
'Quadratically'
,5,6);
2
->
'ratica'
该函数是多字节可靠的。
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
- 从字符串
str
的起始位置pos
返回一个子串。1
mysql>
select
SUBSTRING
(
'Quadratically'
,5);
2
->
'ratically'
3
mysql>
select
SUBSTRING
(
'foobarbar'
FROM
4);
4
->
'barbar'
MYSQL转换编码的解决方法的更多相关文章
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- Mysql常见报错解决方法
一:登录报错 ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO) mysql日志文件 ...
- PHP+MYSQL 出现乱码的解决方法
PHP+MYSQL 出现乱码的解决方法 使用PHP+MYSQL时遇到过字符乱问题,解决方法: 在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于 ...
- 远程首次连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析(转)
PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...
- 实例讲解启动mysql server失败的解决方法
MySQL 实例讲解启动mysql server失败的解决方法 来源: 作者: 发表于: 启动mysql server 失败,查看/var/log/mysqld.err 080329 16:01:29 ...
- MySQL常见错误分析与解决方法总结
MySQL常见错误分析与解决方法总结 一.Can't connect to MySQL server on 'localhost' (10061)翻译:不能连接到 localhost 上的mysql分 ...
- 远程连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析
PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...
- 今天用pro安装nginx+php+mysql出现故障的解决方法
今天用pro安装nginx+php+mysql出现故障的解决方法 by 伍雪颖 dyld: Library not loaded: @@HOMEBREW_CELLAR@@/openssl/1.0.1h ...
- mysql 8创建远程访问用户以及连接mysql速度慢的解决方法
mysql 8创建远程访问用户 [root@demo /]# mysql -u root -p #登录服务器数据库 Enter password:123xxx >user mysql; & ...
随机推荐
- C/C++ 函数指针使用总结
一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关.举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int ...
- 【全网最全的博客美化系列教程】08.自定义地址栏Logo
全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...
- Beta冲刺(5/7)
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(5/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 ppt制作中 数据集标注 接下来的计划 制作p ...
- RTF文件格式
文档地址 首先给出一个生成最简单的RTF文件的脚本 f=open('hello_world.rtf','w') padding='{\\rtf1\\ansi' padding+=' Hello Wor ...
- 如何查询oracle数据库中的各种角色
1. 查询oracle中所有用户信息select * from dba_users;2. 只查询用户和密码select username,password from dba_users;3. 查询当前 ...
- Mysql-innoDB存储引擎(事物,锁,MVCC)
innoDB的特性: 从图中由上至下红色框中的信息是:基于主键的聚集索引 ,数据缓存,外键支持(逻辑上建立外键),行级别锁,MVCC多版本控制,事务支持.这些也是InnoDB最重要的特性. 事务: 数 ...
- tensorflow+ssd_mobilenet实现目标检测的训练
本文在Ubuntu下使用tensorflow的object detection API来训练自己的数据集.所用模型为ssd_mobilenet,也可以使用其他的模型.当然也可以在windows下训练, ...
- Web.Config加密与解密
可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...
- ORACLE 根据 sql_id 查询绑定变量的传入值
查询当前查询: select b.NAME,b.POSITION,b.DATATYPE_STRING,b.VALUE_STRING,b.LAST_CAPTUREDfrom v$sql_bind_cap ...
- UOJ#395. 【NOI2018】你的名字 字符串,SAM,线段树合并
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ395.html 题解 记得同步赛的时候这题我爆0了,最暴力的暴力都没调出来. 首先我们看看 68 分怎么做 ...