刚才看到有人在找emoji的转换方法,我这边提供一个文件

EmojDataModel.js.zip (3.0 KB)

5赞

这个是一个Emoji的集合,可以通过这个列表来进行互相的转换

1赞

謝謝分享!

谢谢分享,我不太理解的是,\uXXXX 应该是字面量,在程序里应该是不会直接拿到字面量才对。

如果真的只是要把字面量转成字符串,用 String.fromCharCode 就行了。
以 UTF16 为例,:rainbow: 是 “\uD83C\uDF08”,那只要

不过我还发现你这里的 :rainbow: 是 “\uE44C”,请问这是什么编码?

1赞
   //sex
            var sex= global.ESexType.Male
            var tempSex=parseInt(result.sex)
            if (tempSex==1)
            {
                sex= global.ESexType.Male
            }
            else if(tempSex == 2)
            {
                sex= global.ESexType.Female
            }
            //avatar
            var url= result.avatar
            var reg=new RegExp("\\\\","g")
            url=url.replace(reg,"")
            //name
            global.GHelper.log("@@ (closeWeiXinLogin) playername11111:" + result.roleName)
            var name = result.roleName
            var emojs={}
            for(var i = 0;i<name.length;++i)
            {
                var c = name.charAt(i)
                var e = global.GEmojCodeDataModel.getEmoj(c)
                if(e)
                {
                    emojs[c] = e
                }
            }
            global.core.foreach(emojs,function(c,e)
            {
                name = name.replace(c,e)
            })
1赞

我们是通过查值替换的方式来替换内容的

core.foreach = function (items, callback)
{
    if (!items || !callback)
    {
        return
    }
    if (core.isNumber(items))
    {
        for (var i = 0; i < items; ++i)
        {
            var ret = callback(i)
            if(ret)
            {
                return
            }
        }
    }
    else if (core.isString(items))
    {
        for (var i = 0, length = items.length; i < length; i++)
        {
            var ret = callback(i,items.charAt(i))
            if(ret)
            {
                return
            }
        }
    }
    else if (core.isArray(items))
    {
        for (var i = 0, length = items.length; i < length; ++i)
        {
            var ret = callback(i,items[i])
            if(ret)
            {
                return
            }
        }
    }
    else if (core.isObject(items))
    {
        for (var key in items)
        {
            var ret = callback(key,items[key])
            if(ret)
            {
                return
            }
        }
    }
    return
}

微信的数据 拉取到了 之后,我们就把资源做成这样的

然后就可以在RichLabel里展示了

哦~ 厉害了!

感谢分享,有重复key

可以不用富文本的