编码 同一个字符在不同的编码下会被编成不同长度的编码, 比如:ACSII,每个字符对应一个字节,实际上只使用了7位,从00h-7Fh。只能表达128个字符。 GB2312,中文的一种编码,每个字符使用两个字节表示。 UTF-8, 可以表达所有unicode字符,每个字符可以用1-3个字节表示。 UTF-16, 可以表达所有unicode字符,每个字符可以用1-2个16位整数表示。 UTF-32, 可以表达所有unicode字符,每个字符可以用1个32位整数表示。
NSStringEncoding enc = CFStringConvertEncodingT
NSString *newString = [[NSString alloc] initWithData:dataString
encoding:enc]; (一)用ASCII码转换
[c-sharp]
(2) System.Text.Encoding.Default
[c-sharp]
(3)需要把string转换为byte[]使用的场景 任何需要把string序列化处理都需要这种转换,比如: 需要把string保存到文件中,必须把string转换成一个有序的字节流,以便系统在硬盘上做物理保存。 对string做加密操作时,加密算法是针对字节进行处理,这时也需要把string转换成字节流以便加密算法对数据进行处理。 String到字节流的转换涉及到使用何种编码,使用不同的编码得到的字节码不同,再从字节码做反操作恢复成string,必须使用编码时使用的编码或者兼容的编码,否则结果就是乱码。 ///////////////////////////////////////////////////////////////////////////////////
1、 确定使用的编码
2、 从string到byte[]
3、 从byte[]到string
|
|
来自: 叹落花 > 《NSString》