zoukankan      html  css  js  c++  java
  • 【微信公众号开发】【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()
  • 相关阅读:
    Entity Framework+SQLite+DataBaseFirst
    接口的实现方式(显示和隐示)及协变和逆变
    C#线程
    UIScrollView放大缩小图片偏移的问题
    SQL Server 2008在添加用户时弹出错误提示:此版本的 Microsoft Windows 不支持 MUST_CHANGE 选项
    jmeter的正则表达式的使用
    Linux下安装jmeter
    系统测试方案
    [ASP.NET].NET逻辑分层架构总结
    [C#]C#时间日期操作
  • 原文地址:https://www.cnblogs.com/huashengweilong/p/10399433.html
Copyright © 2011-2022 走看看