IOS汉字编码转化
来源:互联网 发布:彼德伯格俱乐部知乎 编辑:程序博客网 时间:2024/04/28 20:11
- Unicode转化为汉字
+ (NSString *)replaceUnicode:(NSString *)unicodeStr {
NSString *tempStr1 = [unicodeStrstringByReplacingOccurrencesOfString:@"\\u"withString:@"\\U"];
NSString *tempStr2 = [tempStr1stringByReplacingOccurrencesOfString:@"\""withString:@"\\\""];
NSString *tempStr3 = [[@"\""stringByAppendingString:tempStr2]stringByAppendingString:@"\""];
NSData *tempData = [tempStr3dataUsingEncoding:NSUTF8StringEncoding];
NSString* returnStr = [NSPropertyListSerializationpropertyListFromData:tempData
mutabilityOption:NSPropertyListImmutable
format:NULL
errorDescription:NULL];
return [returnStrstringByReplacingOccurrencesOfString:@"\\r\\n"withString:@"\n"];
}
- 汉字与utf8相互转化
NSString* strA = [@"%E4%B8%AD%E5%9B%BD"stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *strB = [@"中国"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- NSString 转化为utf8
NSString *strings = [NSStringstringWithFormat:@"abc"];
NSLog(@"strings : %@",strings);
CF_EXPORT
CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator,CFStringReforiginalString,CFStringRef charactersToLeaved, CFStringReflegalURLCharactersToBeEscaped,CFStringEncoding encoding);
NSString *encodedValue = (__bridge NSString*)CFURLCreateStringByAddingPercentEscapes(nil, (__bridgeCFStringRef)strings,nil, (CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
- iso8859-1 到 unicode编码转换
+ (NSString *)changeISO88591StringToUnicodeString:(NSString *)iso88591String
{
NSMutableString *srcString = [[[NSMutableString alloc]initWithString:iso88591String] autorelease];
[srcString replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearchrange:NSMakeRange(0, [srcString length])];
[srcString replaceOccurrencesOfString:@"&#x" withString:@"" options:NSLiteralSearchrange:NSMakeRange(0, [srcString length])];
NSMutableString *desString = [[[NSMutableString alloc]init] autorelease];
NSArray *arr = [srcString componentsSeparatedByString:@";"];
for(int i=0;i<[arr count]-1;i++){
NSString *v = [arr objectAtIndex:i];
char *c = malloc(3);
int value = [StringUtil changeHexStringToDecimal:v];
c[1] = value &0x00FF;
c[0] = value >>8 &0x00FF;
c[2] = '\0';
[desString appendString:[NSString stringWithCString:c encoding:NSUnicodeStringEncoding]];
free(c);
}
return desString;
}
Q: Is there a standard method to package a Unicode character so it fits an 8-Bit ASCII stream?
A: There are three or four options for making Unicode fit into an 8-bit format.
a) Use UTF-8. This preserves ASCII, but not Latin-1, because the characters >127 are different from Latin-1. UTF-8 uses the bytes in the ASCII only for ASCII characters. Therefore, it works well in any environment where ASCII characters have a significance as syntax characters, e.g. file name syntaxes, markup languages, etc., but where the all other characters may use arbitrary bytes.
Example: “Latin Small Letter s with Acute” (015B) would be encoded as two bytes: C5 9B.
b) Use Java or C style escapes, of the form \uXXXXX or \xXXXXX. This format is not standard for text files, but well defined in the framework of the languages in question, primarily for source files.
Example: The Polish word “wyjście” with character “Latin Small Letter s with Acute” (015B) in the middle (ś is one character) would look like: “wyj\u015Bcie".
c) Use the &#xXXXX; or &#DDDDD; numeric character escapes as in HTML or XML. Again, these are not standard for plain text files, but well defined within the framework of these markup languages.
Example: “wyjście” would look like “wyjście"
d) Use SCSU. This format compresses Unicode into 8-bit format, preserving most of ASCII, but using some of the control codes as commands for the decoder. However, while ASCII text will look like ASCII text after being encoded in SCSU, other characters may occasionally be encoded with the same byte values, making SCSU unsuitable for 8-bit channels that blindly interpret any of the bytes as ASCII characters.
Example: “<SC2> wyjÛcie” where <SC2> indicates the byte 0x12 and “Û” corresponds to byte 0xDB. [AF] & [KW]
所以编码过程是
字符串 -> Unicode编码 -> &#xXXXX; or &#DDDDD;
解码过程反过来即可
http://unicode.org/faq/utf_bom.html#General
- IOS汉字编码转化
- IOS汉字编码转化
- IOS汉字编码转化 分类: IOS
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- linux 配置DNS
- Highcharts图例中显示节点数值
- 解析程序员的几个成长阶段
- 微信支付
- 求反射向量
- IOS汉字编码转化
- 东软实习第一天上课
- 使用jekyll bootstrap在github上建立个人博客
- 基于rest架构的webservice
- spark on yarn的cpu使用
- Java连接Sqlserver 2008总结
- Java PMD 安装地址
- hive内部表与外部表区别详细介绍
- android ListView几个比较特别的属性