如何解决H5提交含有emoji表情的字段后台报错的问题
来源:互联网 发布:mac 如何复制粘贴 编辑:程序博客网 时间:2024/05/05 20:00
最近在移动端项目中遇到一个坑,有几个input表单提交给后台的时候,会因为input字段中出现emoji表情,而导致后台(java)报错。网上百度了半天,找到了一个解决办法,亲测有用。把代码整理了一下:
/** * 用于把用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; } }); return str;}
顺便说一下,这个会把表情转化成字符串,实际上还是改变了它原来的样子,用户其实还是更希望能直接发送表情吧。但是从来拉取数据后,在移动端还是能还原成emoji表情的。如果有大神知道怎样直接提交表情(不通过转化的方法) 还请告知小弟~多谢多谢~
原理参照原文地址:http://www.07net01.com/2015/08/896224.html
0 0
- 如何解决H5提交含有emoji表情的字段后台报错的问题
- 解决 emoji 表情的存储问题。
- 关于base64编码解码(Android编码,JS解码,案例为解决安卓端H5页面的emoji表情显示问题)
- mysql插入Emoji表情报错解决
- MySQL解决插入emoji表情失败的问题
- 解决protostuff+redis输入emoji表情出现乱码的问题
- 截取含有中文、Emoji表情、特殊符号的字符串
- iOS 过滤输入Emoji表情的问题
- Android的Emoji表情
- emoji表情的保存
- 如何让不支持Emoji表情符的数据库存取Emoji表情
- 解决html的textarea表单里x变为emoji表情问题
- 解决emoji表情的数据库存取问题:Cause: java.sql.SQLException: Incorrect string value
- Emoji表情后台处理
- mysql 解决 emoji 表情存储问题-note
- IOS或者Android传递 含有emoji表情的文本到服务器之php处理方式
- android emoji 表情的制作
- emoji表情符的处理
- 高并发同步类容器
- HTML入门学习笔记--CSS显示模式(4)
- String、StringBuffer与StringBuilder之间区别
- break 的细节使用
- 7.MongoDB java CRUD
- 如何解决H5提交含有emoji表情的字段后台报错的问题
- 域名解析类型:A记录、CNAME、MX记录、NS记录、TTL、TXT记录
- 简单工厂设计模式
- UVa-10082-WERTYU
- HZAU 异或问题
- Mysql的几种分布方式及应用场景
- makefile 经典教程
- 将.txt文件用Mac打开报文本编码“Unicode(UTF-8)”不适用的解决办法
- CentOS 7 下使用 Firewall