文档章节

OC Unicode和汉字(utf8)的互转

冰泪_
 冰泪_
发布于 2016/05/16 14:13
字数 172
阅读 876
收藏 1
点赞 2
评论 0

#pragma mark//Unicode转汉字   \u5f20\u4e09 → 张三
 - (NSString *)replaceUnicode:(NSString *)unicodeStr {
     //张三  \u5f20\u4e09
     
     NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
     NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
     NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
     NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
     NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData
                                                            mutabilityOption:NSPropertyListImmutable
                                                                      format:NULL
                                                            errorDescription:NULL];
     
     //  NSLog(@"Output = %@", returnStr);
     return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];
 }
#pragma mark//汉字转 Unicode   张三 →  \u5f20\u4e09
 -(NSString *) utf8ToUnicode:(NSString *)string{
     
     NSUInteger length = [string length];
     NSMutableString *s = [NSMutableString stringWithCapacity:0];
     for (int i = 0;i < length; i++){
         unichar _char = [string characterAtIndex:i];
         //判断是否为英文和数字
         if (_char <= '9' && _char >='0'){
             [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
         }else if(_char >='a' && _char <= 'z'){
             [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
         }else if(_char >='A' && _char <= 'Z')
         {
             [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
         }else{
             [s appendFormat:@"\\u%x",[string characterAtIndex:i]];
         }
     }
     return s;
 }

© 著作权归作者所有

共有 人打赏支持
冰泪_
粉丝 13
博文 68
码字总数 50702
作品 0
青浦
程序员
JavaScript: 详解Base64编码和解码

Base64是最常用的编码之一,比如开发中用于传递参数、现代浏览器中的<img />标签直接通过Base64字符串来渲染图片以及用于邮件中等等。Base64编码在RFC2045中定义,它被定义为:Base64内容传送...

陈亦 ⋅ 2014/02/19 ⋅ 27

字符编码:Unicode、UTF-8、GBK

原文站点:https://senitco.github.io/2017/06/06/character-encoding/   简单总结各种字符集(Ascii、Unicode、GB2312)、编码(UTF8、GBK)以及不同编码之间的转换。 字符集(Charcater Set)...

Zachary_Co ⋅ 2017/12/13 ⋅ 0

Ansi、Unicode、UTF8等编码字符串之间的转换和写入文本文件(学习中……)

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件 最近有人问我关于这个的问题,就此写一篇blog Ansi 字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个/0结尾,常用于txt文本文件 ...

长平狐 ⋅ 2013/01/06 ⋅ 0

VC中Ansi、Unicode、UTF8字符串之间的转换和写入文本

VC中Ansi、Unicode、UTF8字符串之间的转换和写入文本 Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个0结尾,常用于txt文本文件 Unicode字符串,每个字符(汉字、英文字母)都占2...

IMGTN ⋅ 2012/11/13 ⋅ 0

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件 转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html 最近有人问我关于这个的问题,就此写一篇blog Ansi字符串...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

java 中 16 进制 HEX 转换成字节码形式的 UTF-8

恩,又碰到个蛋疼的编码转换问题了:要把形如 xE9xBB 的字符串转成中文。。。 在python中我们直接 print "xE9xBBx84" 即可, 在shell中我们直接 echo $'xe9xbbx84' #echo -e 'xe9xbbx84'也行...

xrzs ⋅ 2013/02/01 ⋅ 0

Nginx、PCRE和中文URL(UTF8编码)rewrite路径重写匹配问题

最近遇到了使用Nginx 重写中文UTF8编码路径的问题。 才发现默认情况下Nginx的rewrite是不支持UTF8匹配的。 比如: rewrite ^/(..)$ /2个字符文章.html break; #用2个点 可以匹配到 /ab 或 /5...

福云 ⋅ 2017/07/19 ⋅ 0

正则表达式和其在OC中的的使用

正则表达式和其在OC中的的使用 最近对正则表达式(regex)很感兴趣, 于是了解了一下, 正则表达式是所有语言都通用的一套查找字符串的方法, 在网上找了很多入门教程, 也看了很多的教程, 也能写出...

hell03W ⋅ 2016/03/06 ⋅ 0

[转]趣谈unicode,ansi,utf-8,unicode big endian这些编码有...

从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好…… 很久很久以前,有一群人,他们决定用8个可以开合...

小白C ⋅ 2012/04/29 ⋅ 0

unicode16与utf8互转

utf16与utf8都是unicode的不同表达形式,utf8多用于网络数据传输使用,所以其之间的转换还是很有必要的。本文意在实现json解析时处理unicode到utf8转化问题时验证。 基础知识: utf8规则 1、...

zhouhb1 ⋅ 2013/06/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 30分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 38分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 47分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部