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。1mysql>selectASCII('2');2-> 503mysql>selectASCII(2);4-> 505mysql>selectASCII('dx');6-> 100也可参见ORD()函数。 
- ORD(str)
- 如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。1mysql>selectORD('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位点精度工作。1mysql>selectCONV("a",16,2);2->'1010'3mysql>selectCONV("6E",18,8);4->'172'5mysql>selectCONV(-17,10,-18);6->'-H'7mysql>selectCONV(10+"10"+'10'+0xa,10,10);8->'40'
- BIN(N)
- 返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT)数字,这等价于CONV(N,10,2)。如果N是NULL,返回NULL。1mysql>selectBIN(12);2->'1100'
- OCT(N)
- 返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。如果N是NULL,返回NULL。1mysql>selectOCT(12);2->'14'
- HEX(N)
- 返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT)数字,这等价于CONV(N,10,16)。如果N是NULL,返回NULL。1mysql>selectHEX(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个的参数。一个数字参数被变换为等价的字符串形式。1mysql>selectCONCAT('My','S','QL');2->'MySQL'3mysql>selectCONCAT('My',NULL,'QL');4->NULL5mysql>selectCONCAT(14.3);6->'14.3'
- LENGTH(str)
- OCTET_LENGTH(str)
- CHAR_LENGTH(str)
- CHARACTER_LENGTH(str)
- 返回字符串str的长度。1mysql>selectLENGTH('text');2-> 43mysql>selectOCTET_LENGTH('text');4-> 4注意,对于多字节字符,其CHAR_LENGTH()仅计算一次。 
- LOCATE(substr,str)
- POSITION(substr IN str)
- 返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.1mysql>selectLOCATE('bar','foobarbar');2-> 43mysql>selectLOCATE('xbar','foobar');4-> 01该函数是多字节可靠的。
- LOCATE(substr,str,pos)
- 返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。1mysql>selectLOCATE('bar','foobarbar',5);2-> 7这函数是多字节可靠的。 
- INSTR(str,substr)
- 返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。1mysql>selectINSTR('foobarbar','bar');2-> 43mysql>selectINSTR('xbar','foobar');4-> 0这函数是多字节可靠的。 
- LPAD(str,len,padstr)
- 返回字符串str,左面用字符串padstr填补直到str是len个字符长。1mysql>selectLPAD('hi',4,'??');2->
- RPAD(str,len,padstr)
- 返回字符串str,右面用字符串padstr填补直到str是len个字符长。1mysql>selectRPAD('hi',5,'?');2->'hi???'
- LEFT(str,len)
- 返回字符串str的最左面len个字符。1mysql>selectLEFT('foobarbar', 5);2->'fooba'该函数是多字节可靠的。 
- RIGHT(str,len)
- 返回字符串str的最右面len个字符。1mysql>selectRIGHT('foobarbar', 4);2->'rbar'该函数是多字节可靠的。 
- SUBSTRING(str,pos,len)
- SUBSTRING(str FROM pos FOR len)
- MID(str,pos,len)
- 从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。1mysql>selectSUBSTRING('Quadratically',5,6);2->'ratica'该函数是多字节可靠的。 
- SUBSTRING(str,pos)
- SUBSTRING(str FROM pos)
- 从字符串str的起始位置pos返回一个子串。1mysql>selectSUBSTRING('Quadratically',5);2->'ratically'3mysql>selectSUBSTRING('foobarbar'FROM4);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; & ... 
随机推荐
- 微信小程序scroll-view(或者其他view) 计算高度 px转rpx有关
			wx.getSystemInfo({ success: function (res) { that.globalData.winWidth = res.windowWidth; that.global ... 
- JMeter学习笔记01-安装环境
			记录关于JMeter学习的内容.方便复习. 1)JMeter运行环境 因为JMeter是用纯java写的.所以运行的时候需要java的运行环境. 去java官网下载,点免费下载或所有Java下载都行, ... 
- Excel-VBA入门(1): 基础 / 变量 /for / if/ 调试
			(一) 启动VBA 打开excel ,选项-自定义功能区-开发工具, 在界面的开发工具下选择 宏安全: 勾选 启用所有 excel保存xlsm后缀的格式才可以用宏! 若启动VBA编辑器(以下简称VB ... 
- Sharding-JDBC
			1.官网文档:https://shardingsphere.apache.org/document/legacy/3.x/document/cn/manual/sharding-jdbc/usage/ ... 
- jmeter测试wordpress使用base64进行鉴权
			1.下载插件 对密码进行加密 2.安装插件 3.使用插件 4.使用base64对上面获取到的密码进行二次加密 echo -n "用户:密码" | base64 将以上命令键入lin ... 
- MySQL入门命令
			SQL(Structured Query Language) SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 ... 
- excel导出导入通用方法
			/** * 方法说明:批量导出通用方法 * 创建时间:2018年8月24日 *** * @param filePath 文件地址 * @param sheetName 分页名称 * @param ti ... 
- java请求参数转换
			public class HttpServletRequestUtil { //转换请求参数 public static int getInt(HttpServletRequest request, ... 
- Redis 可视化工具:Web Redis Manager
			以前用的:RedisDesktopManager (0.9.3以后需要订阅) https://github.com/uglide/RedisDesktopManager/releases 现在需要订阅 ... 
- min-max容斥 hdu 4336 && [BZOJ4036] 按位或
			题解: 之前听说过这个东西但没有学 令$max(S)$表示S中编号最大的元素,$min(S)$表示编号中最小的元素 $$max(S)=\sum{T \in S} {(-1)}^{|T|+1} min( ... 
