手机输入法emoji、颜文字存储

本文讲述了在移动端应用中,处理emoji和颜文字在存储时遇到的问题。作者详细介绍了如何处理emoji的32位和16位Unicode编码,并提供了在Java环境下,使用Struts2和SQL Server存储和读取emoji及颜文字的方法,涉及到Unicode编码转换和字节存储。通过存储原始Unicode数据,解决了在utf-8环境下emoji和颜文字的存储问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多移动端手机输入法都带有emoji和颜文字,丰富了用户表达,但也苦逼了我们。我们做的是一个移动App,可以与相互文字交流。前端用的是HTML5。。。。那一套。发现这一套对表情包的显示没啥毛病,以为解决表情包十分简单。哎呀。。上了输入发的当。。。数据发送到后台,然后存储在转发回来。。崩溃老,乱编。一两天的百度,发现好多网友提供的都是编码编码解决。因为表情包用的是unicode的编码,我们后台是utf-8。先说明一下,后台是用java  struts2 tomcat这一套。。表情包中的emoji很好解决,找到了编码表,网友们也提供了编码方法。这些编码的方法的特点是将unicode遍成后台可识别的字符串如“&#。。。。”,如果只是emoji可以用这一种方法。

网友提供的方法

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 + ";"; 
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值