微信小程序> 微信小程序评论显示emoji的方法附上代码和类文件不需要改数据库

微信小程序评论显示emoji的方法附上代码和类文件不需要改数据库

浏览量:515 时间: 来源:爱憎分明丶

要显示 emoji表情,就需要把emoji表情存入数据库 但是表情基本上算是一张图片,所以直接存到字段里是不行的,除非把数据库字符集改成 Utf-8mb4 ,下面我们用一种另简单的方法去实现:Base64加密.

我们先导入Base64加密的类 (Js文件 文章下面又代码 直接复制粘贴可用) ,然后 用base64加密之后储存到数据库里,然后取出的时候再解密 这些加密解密操作均在前端操作.

下面上代码:

var base = require("../base64.js") //导入base64 类所在的JS文件 
var base64 = new base.Base64(); //创建实例var content=base64.encode(this.data.content)// 加密var title=base64.encode( this.data.title);wx.request({                url: '你的api接口',                data: { title: title,                    content: content,                },                method: 'POST',                success: function(e) {                    //成功后的操作                }})
var base64=new base.Base64();wx.request({url: 你的接口地址',data:{id:0},success:function(e){var i;//得到数据 循环遍历评论 然后解密for (i in e.data.data.comment.comment){ //这里是遍历对象的方式,不懂看js文档e.data.data.comment.comment[i].content = base64.decode(e.data.data.comment.comment[i].content);//主要看这里 解密评论数据}                //保存数据that.setData({detail:e.data.data,detail_content: base64.decode(e.data.data.article.content),//解密内容detail_title: base64.decode(e.data.data.article.title)//解密标题})}})
//这里是Base64类 JS文件function Base64() {// private property  const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";// public method for encoding  this.encode = function (input) {var output = "";var chr1, chr2, chr3, enc1, enc2, enc3, enc4;var i = 0;input = _utf8_encode(input);while (i < input.length) {chr1 = input.charCodeAt(i++);chr2 = input.charCodeAt(i++);chr3 = input.charCodeAt(i++);enc1 = chr1 >> 2;enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);enc4 = chr3 & 63;if (isNaN(chr2)) {enc3 = enc4 = 64;} else if (isNaN(chr3)) {enc4 = 64;}output = output +_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +_keyStr.charAt(enc3) + _keyStr.charAt(enc4);}return output;}// public method for decoding  this.decode = function (input) {var output = "";var chr1, chr2, chr3;var enc1, enc2, enc3, enc4;var i = 0;input = input.replace(/[^A-Za-z0-9+/=]/g, "");while (i < input.length) {enc1 = _keyStr.indexOf(input.charAt(i++));enc2 = _keyStr.indexOf(input.charAt(i++));enc3 = _keyStr.indexOf(input.charAt(i++));enc4 = _keyStr.indexOf(input.charAt(i++));chr1 = (enc1 << 2) | (enc2 >> 4);chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);chr3 = ((enc3 & 3) << 6) | enc4;output = output + String.fromCharCode(chr1);if (enc3 != 64) {output = output + String.fromCharCode(chr2);}if (enc4 != 64) {output = output + String.fromCharCode(chr3);}}output = _utf8_decode(output);return output;}// private method for UTF-8 encoding  const _utf8_encode = function (string) {string = string.replace(/r/g, "");var utftext = "";for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n);if (c < 128) {utftext += String.fromCharCode(c);} else if ((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192);utftext += String.fromCharCode((c & 63) | 128);} else {utftext += String.fromCharCode((c >> 12) | 224);utftext += String.fromCharCode(((c >> 6) & 63) | 128);utftext += String.fromCharCode((c & 63) | 128);}}return utftext;}// private method for UTF-8 decoding  const _utf8_decode = function (utftext) {var string = "";var i = 0;// var c = c1 = c2 = 0;var c = 0;var c1 = 0;var c2 = 0;var c3 = 0;while (i < utftext.length) {c = utftext.charCodeAt(i);if (c < 128) {string += String.fromCharCode(c);i++;} else if ((c > 191) && (c < 224)) {c2 = utftext.charCodeAt(i + 1);string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));i += 2;} else {c2 = utftext.charCodeAt(i + 1);c3 = utftext.charCodeAt(i + 2);string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));i += 3;}}return string;}}//对小程序暴露接口 这个一定要有module.exports = {Base64: Base64,}

 

微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎