MENU

MySQL中Base64编码、解码及乱码解决

概述

由于业务需要,数据库中的某张表数据是使用Base64编码存储的,写入数据需要编码,取值时需要解码。
如果只为了存取数据,可以在业务层进行编码解码,但实际需求中是需要对数据进行条件查询的,所以这部分条件查询的解码就需要放到MySQL中进行。

基础操作

编码

MySQL为我们提供了TO_BASE64函数进行Base64编码

INSERT INTO tbl_order (id, content) VALUES(0, TO_BASE64 ('sometext'))

解码

解码也只需要调用FROM_BASE64函数

SELECT FROM_BASE64(content) FROM tbl_order

条件查询中也可以使用

SELECT id FROM tbl_order WHERE content = TO_BASE64("2021年8月20日")

乱码处理

如果在业务层进行BASE64编码并指定编码格式为UTF-8或其他格式,再进行查询就会出现乱码的问题
1.png

此时就需要使用CAST函数转换格式

SELECT CAST(FROM_BASE64(content) AS CHAR CHARACTER SET utf8 ) FROM tbl_order

问题即可解决
2.png


文章标题:MySQL中Base64编码、解码及乱码解决
如果文中内容侵犯了您的权益,请及时与博主取得联系进行删除!
本站文章未经许可禁止转载,本文地址:https://blog.wanvale.com/archives/427/

Archives QR Code Tip
QR Code for this page
Tipping QR Code