iOS  Emoji表情编码/解码

之前做弹幕的时候 遇到的表情编码解码问题

表情编码一般是使用unicode编码 ,编码之后的格式 \ud83d\ude18\ud83d\ude18world\u4e16\u754chaha\ud83d\ude17

  //编码
    NSString *uniStr = [NSString stringWithUTF8String:[_barrageText.text UTF8String]];
    NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *goodStr = [[NSString alloc] initWithData:uniData encoding:NSUTF8StringEncoding] ;
    NSLog(@"---编码--->[%@]",goodStr);

    //解码
    const char *jsonString = [goodStr UTF8String];   // goodStr 服务器返回的 json
    NSData *jsonData = [NSData dataWithBytes:jsonString length:strlen(jsonString)];
    NSString *goodMsg1 = [[NSString alloc] initWithData:jsonData encoding:NSNonLossyASCIIStringEncoding];
    NSLog(@"---解码--->[%@]",goodMsg1);

    2016-04-15 10:16:17.858 DFRomwe[650:153981] ---编码--->[hello\ud83d\ude18\ud83d\ude18world\u4e16\u754chaha\ud83d\ude17]
    2016-04-15 10:16:17.859 DFRomwe[650:153981] ---解码--->[hello????world世界haha??]
时间: 2024-10-09 04:57:52

iOS  Emoji表情编码/解码的相关文章

IOS Emoji表情

IOS Emoji 前言:我比较喜欢有趣的东西,有一些有趣的小东西,可能不是多么多么牛逼,也可能不需要多高深的技巧,也不会为其他什么强大的功能而服务,但是有时候将很多有趣的小东西组合起来运用,比如在你的app某个功能上适当添加这个有趣的小东西的时候,说不定就能起到锦上添花的作用,更能吸引用户.下面就粗略介绍IOS Emoji表情字符. 关于IOS Emoji我才刚刚了解,还有很多东西不是特别清楚,等待以后有时间深入探索更多的应用知识. 然后展示我之前运用到按钮上的一个案例,是不是有点意思: 这个

Emoji表情编解码库XXL-EMOJI

<Emoji表情编解码库XXL-EMOJI> 一.简介 1.1 概述 XXL-EMOJI 是一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码. 1.2 特性 1.简洁:API直观简洁,一分钟上手: 2.易扩展:模块化的结构,可轻松扩展: 3.别名自定义:支持为Emoji自定义别名: 4.实时性:实时收录最新发布的Emoji: 1.3 下载 文档地址 中文文档 源码仓库地址 源码仓库地址 Release Download https://github.com/xuxuel

php mysql 存储 IOS Emoji表情失败和乱码问题

感谢伟大的网络,给我们带来了很多有用的信息 然后开始 项目需要给app提供接口,发现IOS开发存储Emoji表情失败,或者乱码,在这里给自己留个记录以及给大家带来一些参考 首先是字符集的问题,mysql字符集大多数使用的是utf8,需要把字符集更换成utf8mb4,因为UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,utf8mb4则扩展到一个字符最多能有4字节,并且兼容utf8 在mysql终端查看下mysql当前版本所支持的字符集,

iOS emoji表情转码 或者判断

如果项目中有评论或者信息恢复的地方,往往会用到emoji,有时候如后台不支持emoji,就会显示乱码错误,我们可以把emoji转成unicode编码或者utf8编码格式传给服务器.当然如果后台服务器接收的时候能做好判断识别最好,我们这边后台是支持的,我仅记录一下方法,以备不时之需. 先定义一个UITextView 并设置代理 设定一个宏定义,用来判断emoji #define MULITTHREEBYTEUTF16TOUNICODE(x,y) (((((x ^ 0xD800) << 2) |

微信emoji表情编码 、MySQL 存储 emoji 表情符号字符集

1.把 PHP 连接 MySQL 的字符集 由 utf8 改为 utf8mb4:ThinkPHP框架中,改下 配置文件 /ThinkPHP/Conf/convention.php 的 DB_CHARSET 为 utf8mb4 (默认为 utf8) 2.把 聊天记录表的 聊天内容字段的 字符集改为 utf8mb4_general_ci: 原文地址:https://www.cnblogs.com/gaocy/p/9559410.html

使用EMOJI表情

因为IOS系统支持日文中的字块编码,所以在UILable,UITextField,UIAlertView等控件中使用emoji表情编码(emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符)), 比如: NSString *s = [NSString stringWithFormat:@"This is a smiley \ue415 %C face",0xE05A]; NSLog(@"11----%@",s); label.te

教你如何让数据库支持emoji表情符存储

From: http://www.cnblogs.com/janehoo/archive/2016/04/06/5359800.html 一.教你如何让数据库支持emoji表情符存储 解决方式:更换字符集utf8-->utf8mb4 上周有开发人员反馈一个问题:前台应用抓取微博信息,每天总有几条数据插入不成功.应用日志显示: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column '

有关emoji表情以及utf-16编码

昨日IOS组的同事遇到一个棘手的问题:当输入框内含有emoji表情时,如何获取文本框内的字符数(一个emoji表情算一个字符). 先从我最近接触的JAVA说起,JAVA中,在使用String的length方法时,如果是普通的中英文字符,没有问题,但是如果该字符的Unicode编码大于0xFFFF,这个length方法就不能正确的获取字符数量了,事实上会把这样的特殊字符计算成2个字符.当然,JAVA已有现成的方法解决这个问题:codePointCount. 可惜的是,找了很久,在Objective

mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(