IOSにおける符号化変換方法
5970 ワード
IOSにおける符号化変換方法(回転)
IOS開発における符号化変換方法は本稿で紹介する内容であり,主に符号化変換の内容を学習しに来たが,多くは言わず,直接詳細を見に来た.以下の方法を用いて符号化変換を行うことができる.
- NSString* str2 = [NSString stringWithCString:str1 encoding:enc1];
NSStringのcStringUsingEncoding:enc 2を再呼び出してenc 1からenc 2への変換を実現
しかしenc列挙値の取得は難題です
1、NSString.hでは以下の符号化値のみが定義されている
- enum {
- NSASCIIStringEncoding = 1,
- NSNEXTSTEPStringEncoding = 2,
- NSJapaneseEUCStringEncoding = 3,
- NSUTF8StringEncoding = 4,
- NSISOLatin1StringEncoding = 5,
- NSSymbolStringEncoding = 6,
- NSNonLossyASCIIStringEncoding = 7,
- NSShiftJISStringEncoding = 8,
- NSISOLatin2StringEncoding = 9,
- NSUnicodeStringEncoding = 10,
- NSWindowsCP1251StringEncoding = 11,
- NSWindowsCP1252StringEncoding = 12,
- NSWindowsCP1253StringEncoding = 13,
- NSWindowsCP1254StringEncoding = 14,
- NSWindowsCP1250StringEncoding = 15,
- NSISO2022JPStringEncoding = 21,
- NSMacOSRomanStringEncoding = 30,
-
- NSUTF16StringEncoding = NSUnicodeStringEncoding,
-
- #if MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_2_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
- NSUTF16BigEndianStringEncoding = 0x90000100,
- NSUTF16LittleEndianStringEncoding = 0x94000100,
-
- NSUTF32StringEncoding = 0x8c000100,
- NSUTF32BigEndianStringEncoding = 0x98000100,
- NSUTF32LittleEndianStringEncoding = 0x9c000100
- #endif
- };
まさかiphoneの中で中国語はまだ支持しませんか?まさか?
2、iphoneでは中国語がサポートされているに違いありませんが、NSStringではこの列挙値が定義されていません.この列挙値は2つの方法で得ることができます.最初の方法はCFStringConvertEncodingToNSStringEncodingなどです.
- NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
- NSString* str2 = [NSString stringWithCString:str1 encoding:enc];
全てのkCFStringEncoding定義はCFStringEncodingExt.を参照する.hまたCFStringConvertIANACharSetNameToEncodingも役立ちます
3.もう一つの方法は
- const NSStringEncoding *encodings = [NSString availableStringEncodings];
- NSMutableString *str = [[NSMutableString alloc] init];
- NSStringEncoding encoding;
- while ((encoding = *encodings++) != 0)
- {
- [str appendFormat: @"%@ === %in", [NSString localizedNameOfStringEncoding:encoding], encoding];
- }
str配列を印刷すると、encodingの列挙値がどれだけあるかがわかります.例えば、中国語は-217482063です.
小結:IOS開発における符号化変換方法の深さ解析の内容を紹介しました.
原文:http://mobile.51cto.com/iphone-283494.htm