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'
转载于:https://www.cnblogs.com/lovelygang/p/10754558.html
MYSQL转换编码的解决方法相关推荐
- php mysql中文排序失效解决方法convert(name USING gbk)
php mysql中文排序失效解决方法convert(name USING gbk) 在php中经常用到中文排序,当mysql使用的默认utf8编码时,如果直接order by 中文字段排序,排序结果 ...
- MYSQL无法识别中文解决方法“一劳永逸”
MYSQL 无法识别中文解决方法 "一劳永逸" 多数情况下,mysql在刚刚安装时是不支持中文的,这是由于编码的问题 我们可以通过修改配置文件,永久实现mysql对中文的识别 首先 ...
- mysql 查询rowno_C# Mysql 查询 Rownum的解决方法
C# Mysql 查询 Rownum的解决方法,需要的朋友可以参考一下 Sql: 代码如下: SELECT @rownum:=@rownum+1 AS rownum, a.order_id , cas ...
- 错误:“Cannot load JDBC driver class ‘com.mysql.jdbc.Driver”的解决方法
错误:"Cannot load JDBC driver class 'com.mysql.jdbc.Driver"的解决方法 参考文章: (1)错误:"Cannot lo ...
- can t connect to mysql server on ‘localhost‘解决方法
can t connect to mysql server on 'localhost'解决方法 参考文章: (1)can t connect to mysql server on 'localhos ...
- mysql 自动停止_MySQL数据库之mysql自动停止的完美解决方法
本文主要向大家介绍了MySQL数据库之mysql自动停止的完美解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这两天新买的服务器mysql总是自动停止,查了日志 9:1 ...
- grafana导入json文件没有数据_XAMPP客户端环境无法导入较大Mysql数据库文件的解决方法...
一般我们本地的网站环境是使用的PHPSTUDY软件客户端,但是一般的MacOS下会使用XAMPP客户端,以前我在MAC上也是有使用过的,总感觉没有国产的软件好用所以就没有使用. 今天遇到有网友出现XA ...
- ubuntu mysql 2003_Ubuntu 安装 mysql Ubuntu 安装 mysql 忘记初始密码解决方法
查看是否安装Mysql sudo netstat -tap | grep mysql 如果为空则没有安装,进行安装: sudo apt-get install mysql-server mysql-c ...
- 远程连接mysql速度慢的解决方法
PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS ...
最新文章
- 检测jQuery.js是否已加载的判断代码
- 使用pg_stat_statement监控pgsql遇到的问题
- c语言作业 龟兔赛跑,c语言龟兔赛跑
- windows修改环境变量神器—Rapid Environment Editor
- python语言怎么输入-python如何用input输入数组
- linux脚本判断流程控制,linux shell awk 流程控制语句(if,for,while,do)详细介绍
- ubuntu下安装android ndk
- 初始Windows程序
- 近期H5项目开发小结
- 为什么说 Web 开发永远不会退出历史舞台?
- 烂泥:nagios监控单网卡双IP
- 攻防世界 用什么工具_橱柜清洁、控油方法 厨房清洁工具用什么好
- jdk下载和安装教程
- Java项目—在线考试系统
- 解析rtcm32报文工具_RTCM数据格式实时处理方法应用
- java jdomxml 换行_使用JDOM读写XML的方法
- 快速切换node版本
- 3D建模,打印正当时
- 向windows服务器传输大文件时提示未知错误解决方法
- Revit:放置标高和轴网方法总结