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才能正常使用。

MySql的字符串函数
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果strNULL,返回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)。如果NNULL,返回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)。如果NNULL,返回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填补直到strlen个字符长。

1 mysql> select LPAD('hi',4,'??');
2             -> 

RPAD(str,len,padstr)
返回字符串str,右面用字符串padstr填补直到strlen个字符长。

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转换编码的解决方法相关推荐

  1. php mysql中文排序失效解决方法convert(name USING gbk)

    php mysql中文排序失效解决方法convert(name USING gbk) 在php中经常用到中文排序,当mysql使用的默认utf8编码时,如果直接order by 中文字段排序,排序结果 ...

  2. MYSQL无法识别中文解决方法“一劳永逸”

    MYSQL 无法识别中文解决方法 "一劳永逸" 多数情况下,mysql在刚刚安装时是不支持中文的,这是由于编码的问题 我们可以通过修改配置文件,永久实现mysql对中文的识别 首先 ...

  3. mysql 查询rowno_C# Mysql 查询 Rownum的解决方法

    C# Mysql 查询 Rownum的解决方法,需要的朋友可以参考一下 Sql: 代码如下: SELECT @rownum:=@rownum+1 AS rownum, a.order_id , cas ...

  4. 错误:“Cannot load JDBC driver class ‘com.mysql.jdbc.Driver”的解决方法

    错误:"Cannot load JDBC driver class 'com.mysql.jdbc.Driver"的解决方法 参考文章: (1)错误:"Cannot lo ...

  5. 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 ...

  6. mysql 自动停止_MySQL数据库之mysql自动停止的完美解决方法

    本文主要向大家介绍了MySQL数据库之mysql自动停止的完美解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这两天新买的服务器mysql总是自动停止,查了日志 9:1 ...

  7. grafana导入json文件没有数据_XAMPP客户端环境无法导入较大Mysql数据库文件的解决方法...

    一般我们本地的网站环境是使用的PHPSTUDY软件客户端,但是一般的MacOS下会使用XAMPP客户端,以前我在MAC上也是有使用过的,总感觉没有国产的软件好用所以就没有使用. 今天遇到有网友出现XA ...

  8. ubuntu mysql 2003_Ubuntu 安装 mysql Ubuntu 安装 mysql 忘记初始密码解决方法

    查看是否安装Mysql sudo netstat -tap | grep mysql 如果为空则没有安装,进行安装: sudo apt-get install mysql-server mysql-c ...

  9. 远程连接mysql速度慢的解决方法

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS ...

最新文章

  1. 检测jQuery.js是否已加载的判断代码
  2. 使用pg_stat_statement监控pgsql遇到的问题
  3. c语言作业 龟兔赛跑,c语言龟兔赛跑
  4. windows修改环境变量神器—Rapid Environment Editor
  5. python语言怎么输入-python如何用input输入数组
  6. linux脚本判断流程控制,linux shell awk 流程控制语句(if,for,while,do)详细介绍
  7. ubuntu下安装android ndk
  8. 初始Windows程序
  9. 近期H5项目开发小结
  10. 为什么说 Web 开发永远不会退出历史舞台?
  11. 烂泥:nagios监控单网卡双IP
  12. 攻防世界 用什么工具_橱柜清洁、控油方法 厨房清洁工具用什么好
  13. jdk下载和安装教程
  14. Java项目—在线考试系统
  15. 解析rtcm32报文工具_RTCM数据格式实时处理方法应用
  16. java jdomxml 换行_使用JDOM读写XML的方法
  17. 快速切换node版本
  18. 3D建模,打印正当时
  19. 向windows服务器传输大文件时提示未知错误解决方法
  20. Revit:放置标高和轴网方法总结

热门文章

  1. 为了智能驾驶,李彦宏要改造城市道路了!
  2. What-If 工具:无需写代码,即可测试机器学习模型
  3. 关于AI,腾讯又有大动作!开发者该如何应对?
  4. 全球股市巨震,如何用深度学习预测股价?
  5. 9种不同的方法帮助你提高国内访问Github的速度!
  6. 如何设计并实现一个秒杀系统?(含完整代码)
  7. 浅析几种线程安全模型
  8. 最新NLP核心技术与前沿实践分享!
  9. KDD Cup 2021城市大脑赛题解析!报名倒计时3天
  10. 腾讯!阿里!大二男生斩获4家头部科技公司实习offer!完整经验总结!