【发布时间】:2014-07-22 17:06:57
【问题描述】:
全部,
我有一个NSString,其字符为 UTF8 格式。我想将此解码为 CP1252 / Windows-1252 格式。
采取的行动:
- 将NSString 转换为字节数组(UTF8 解码)
- 将字节数组编码为 CP1252 / windows1252 格式字节数组
- 从字节数组中读取第一个元素
我该怎么做?看了很多关于CFstring的文档,还是看不懂。
我做了什么:
NSString *tileData = @"4¬";
NSNumber *value = [NSNumber numberWithInt:[[tileData substringWithRange:NSMakeRange(0, 1)] intValue]];
NSString *pos = [tileData substringWithRange:NSMakeRange(1, 1)];
// first attempt: create byte-array from NSString into UTF8. Then create NSString in CP1252 format.
NSData *data = [pos dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Data =%@",data);
NSString *htmlSTR = [[NSString alloc] initWithData:data
encoding:NSWindowsCP1252StringEncoding];
NSLog(@"htmlSTR =%@", htmlSTR);
NSData *data2 = [htmlSTR dataUsingEncoding:NSWindowsCP1252StringEncoding];
NSLog(@"Data2 =%@",data2);
// second attempt: create byte-array from NSString into CP1252. Then create NSString in CP1252 format.
NSData *data11 = [pos dataUsingEncoding:NSWindowsCP1252StringEncoding];
NSLog(@"Data11 =%@",data11);
NSString *htmlSTR2 = [[NSString alloc] initWithData:data11
encoding:NSWindowsCP1252StringEncoding];
NSLog(@"htmlSTR2 =%@", htmlSTR2);
NSData *data21 = [htmlSTR2 dataUsingEncoding:NSWindowsCP1252StringEncoding];
NSLog(@"Data21 =%@",data21);
希望有人可以帮助我或有一个例子。
【问题讨论】:
-
你了解不是所有的 UTF-8 (Unicode) 字符串都可以编码成 CP1252 吗?
-
NSWindowsCP1252StringEncoding?那是你要找的吗?你试过什么?你自己搜索了一下吗? -
我搜索了很多,尝试了很多可能的解决方案。当然!我知道编码,但是如何对字符串进行编码并使用位数组?
标签: objective-c nsstring encode