博客主页 😞
vue实现emoji表情包的编解码
vue实现emoji表情包的编解码

Author:

芝麻

©

Wordage:

共计 1039 字

needs:

约 1 分钟

Popular:

187 ℃

Created:

:本文最后更新于2024年01月29日,已经过了711天没有更新,若内容或图片失效,请留言反馈
目 录

创建一个emoji.js工具类

    //把utf16的emoji表情字符进行转码成八进制的字符
export function utf16toEntities(str) {
  var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则  
  return str.replace(patt, function (char) {
      var H, L, code;
      if (char.length === 2) {
          H = char.charCodeAt(0); // 取出高位  
          L = char.charCodeAt(1); // 取出低位  
          code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法  
          return "&#" + code + ";";
      } else {
          return char;
      }
  });
}

//将编码后的八进制的emoji表情重新解码成十六进制的表情字符
export function entitiesToUtf16(str) {
  return str.replace(/&#(\d+);/g, function (match, dec) {
      let H = Math.floor((dec - 0x10000) / 0x400) + 0xD800;
      let L = Math.floor(dec - 0x10000) % 0x400 + 0xDC00;
      return String.fromCharCode(H, L);
  });
}

在需要编解码的地方进行调用

    import {utf16toEntities,entitiesToUtf16} from '@/utils/emoji'
    var a = utf16toEntities("表情包")
    var b = entitiesToUtf16(a)
文章二维码
vue实现emoji表情包的编解码
 博主关闭了当前页面的评论
博客主页 芝麻博客·单人主站 哦哈哟
萌ICP备20220001号 苏ICP备2021051187号-1 本站已运行 3 年 69 天 16 小时 24 分 自豪地使用 Typecho 建站,并搭配 MyDiary 主题 Copyright © 2022 ~ 2026. 芝麻博客·单人主站 All rights reserved.
打赏图
打赏博主
欢迎
欢迎
欢迎访问芝麻博客·单人主站
与其说是博客,不如说是错题集
搜 索
足 迹
分 类
  • 默认分类
  • 前端
  • 后端
  • 模型
  • 游戏
  • 日语
  • 博客