【微信公众号开发】【11】符号表情相关

前言:

1,符号表情有多种来源,微信表情,输入法表情等。提供了两种方案,建议选择方案2

2,在不一样的标签或场景中显示情况不一样,比如在HTML中显示正常,在微信推送消息中却无法显示,这里只能保证大部分情况和表情

2,处理方案1——转码;在JS中处理,

3,处理方案2——jar包

正文:

处理方案1——转码

JS:

/**
 * Unicode码点转成UTF-16
 * H = Math.floor((c-0x10000) / 0x400)+0xD800
 * L = (c - 0x10000) % 0x400 + 0xDC00
 */
/**
 * 用于把用utf16编码的字符转换成实体字符,以供后台存储
 * @param {string} str 将要转换的字符串,其中含有utf16字符将被自动检出
 * @return {string} 转换后的字符串,utf16字符将被转换成&#xxxx;形式的实体字符
*/
function utf16toEntities(str) {
    var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
        str = 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;
            }
        });
    //console.log(str);
    return str;
}

处理方案2——jar包

我的项目jar包是由Maven管理的(用自己的方式引入jar包即可)

<dependency>
  <groupId>com.vdurmont</groupId>
  <artifactId>emoji-java</artifactId>
  <version>4.0.0</version>
</dependency>
EmojiParser.parseToUnicode("XX") //EmojiParser还有其他方法,比如EmojiParser.removeAllEmojis()

原文地址:https://www.cnblogs.com/huashengweilong/p/10399433.html

时间: 2024-10-09 14:49:59

【微信公众号开发】【11】符号表情相关的相关文章

微信公众号开发总结

最近公司用到了微信公众平台,所以研究了一下微信公众号的开发技术,总体来说比较简单,结合现有的平台核技术,实现起来非常方便. 首先先来了解一下微信公众平台. "微信,是一个生活方式" ,这是微信的自我评价,是不是觉得如果那天不在朋友圈里分享一下自己的最新状态, 并且收到几个赞和评价的话,会觉得空虚寂寞呢?它实实在在的改变了我们的生活方式. " 微信,也是一个生意方式 ",在微信成为我们日常必备之app的同时,它同样具备巨大的的商业 或许不应该称为潜力,因为有很多人已经

《初识Java微信公众号开发》 学习中遇到的困难

前一段时间无聊的时候,在慕课网上自学了一点点微信公众号开发(受学姐威胁). 慕课网教程的地址:http://www.imooc.com/learn/368 毕竟是免费的课程,不可能讲的那么详细.所以我吧我遇到的问题跟大家分享一下. 这是我照着课程敲的代码(IDE是Eclipse): https://github.com/Zuosy/WeiXin 发到github上面了. 为了这个,我还专门到廖大的网站上学了一遍Git. 廖大的Git教程传送们:https://www.liaoxuefeng.co

C#微信公众号开发系列教程二(新手接入指南)

http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微

VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启)

VopSdk一个高逼格微信公众号开发SDK(源码下载) VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启) 针对第一版,我们搞了第二版本,老规矩先定个目标. 一 我们的目标 a.移除PayExcute,统一执行入口,目前只保留一个入口Excute b.序列化特性统一,目前只用设置xml特性即可(反序列化时xml和json都可以直接用) c.支持文件上传,目前只有多客服管理上传头像接口用到过 d.使用T4模板自动生产所有Request.Response.以及所有测试Test(装

C#微信公众号开发系列教程三(消息体签名及加解密)

  C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南)    距离上一篇博文已经半个月了,本来打算每两天更新一次的,但可怜苦逼码农无日无夜的加班.第一篇博文发表后,博文视点的编辑就找到我,问我想不想出版这个系列,我当时瞬间就想到了王大锤的独白,想想真的是有点小激动,后面按照那边的要求,提交了申请书,也提交了目录,可惜文笔不行,再加上最近太忙,样稿一直没有给他,感觉挺愧疚了.真心希望能帮一下迷茫的

微信公众号开发技术基础(二):外网映射工具ngrok的简介和使用

本文结构:(一)用法(二)示例(三)qydev ngrok的下载链接及相关网站 微信公众号开发的时候,微信服务器是需要访问我们的一个公网服务器地址的,但我们又是在本地调试自己的程序的,那怎样让微信服务器能访问到我们本地的服务器呢?那就需要用外网映射工具,将本地IP映射成公网IP,这样就能在公网上访问本地服务了,这里使用ngrok.ngrok原版程序的服务器是在国外的,访问速度极慢或者干脆访问不了,所以这里提供一个服务器搭建在国内的基于ngrok的一个软件:qydev,百度网盘下载链接见文章结尾.

C#微信公众号开发系列教程五(接收事件推送与消息排重)

微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C#微信公众号开发系列教程四(接收普通消息) C#微信公众号开发系列教程五(接收事件推送与消息排重) 在上一篇的博文中讲到,微信的消息可以大体分为两种类型,一种是包括:文本,语音,图片等的普通消息,另一种就是本篇要将的事件类型.包括:关注/取消关注事件,扫描带参数二维码事件,上报地理位置事件,自定义菜

.NET微信公众号开发-6.0模板消息

一.前言 为了保证用户不受到骚扰,在开发者出现需要主动提醒.通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒.通知消息.这个意思也就是,我们作为微信商户,不能主动的给用户推送消息,如果这个功能完全开放,那么用户有可能会受到大量的垃圾信息,为了做一个很好的控制,微信那边给我们开放了一个模板消息,通过模板消息我们可以友好的给用户发送一些相关的消息提醒. 二.开发前的准备 1.0模板消息官方文档地址 2.0查看我们的模板消息是否申请成功

.net微信公众号开发——基础接口

本文讲述微信公众号开发中基础接口的使用,包括以下内容:    (1)获取许可令牌(AccessToken):    (2)获取微信服务器地址:    (3)上传.下载多媒体文件:    (4)创建.显示二维码:    (5)长链接转短链接.    开源项目地址:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount    本文的源代码地址:http://git.oschina.net/xrwang2/xrwang.weixin.Pub

微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友

之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注入权限验证配置以及签名算法实现的Java版本 前两天在做微信分享的时候发现按照以前的思路每次都不能正确获取"分享到朋友圈"按钮点击状态及自定义分享内容接口,而是必须通过一个按钮先点击帮点事件,然后才能获取"分享到朋友圈"按钮点击状态及自定义分享内容接口. 回顾一下以前扫