UTF8

2012-01-09 9 views
3

에있는 NSString 인코딩을 변환하는 방법을 내가 뭔가 같이했던 'mystr가'영어의 경우 mystr 경우 NSLog(@"%@", str);UTF8

그러나 다음

NSData *dt = [mystr dataUsingEncoding:NSWindowsCP1251StringEncoding]; 

    NSString *str = [NSString alloc] initWithData:dt encoding:NSUTF8StringEncoding]; 

, 다음 NSLog는 그대로 인쇄 할 것이나, 아랍어 (예 : NSLog)는 아무 것도 인쇄하지 않으므로 mystr의 인코딩을 UTF8로 어떻게 바꿀 수 있습니까?

미리 감사드립니다.

답변

0

시도해 보셨습니까 [mystr UTF8String]? 이 *

+0

내가 NSLog을 할 때마다 ("%의 @"@ [mystr UTF8String에]); – JAHelia

+0

[mystr UTF8String]이 NSObject를 반환하지 않기 때문에 char *를 반환합니다. –

+0

NSLog (@ "% s", [mystr UTF8String]) 사용 –

-2

당신은 시도 할 수있는 문자를 리턴이 1)을 NSData (NSWindowsCP1251StringEncoding

NSString *[email protected]"This is Sample Text Conversion....."; 

NSData *data=[text dataUsingEncoding:NSWindowsCP1251StringEncoding]; 

2) REVERS 과정에있는 NSString.

NSString *textRev=[[NSString alloc]initWithData:data encoding:NSWindowsCP1251StringEncoding]; 

NSLog(@" Actual String.. %@",textRev); 
4

첫 줄은 cp1251 인코딩의 일부 데이터를 생성합니다. 두 번째 줄에는 "이 데이터를 문자열로 읽습니다. 바이트가 UTF8로 인코딩 된 문자열을 나타내는 것으로 가정합니다". 그러나 바이트가 cp1251 인코딩 된 문자열을 나타내므로 그다지 잘 작동하지 않습니다.

NSString은 정렬 된 문자 모음을 나타냅니다. 내부적으로 이러한 문자를 메모리에 저장하기 위해 일부 인코딩을 사용하지만 해당 인터페이스는 문자열에 대한 인코딩 독립적 액세스를 제공하므로 NSString을 인코딩에 알맞지 않은 것으로 간주 할 수 있습니다. 원하는 것이 UTF8 인코딩의 문자열을 나타내는 바이트 모음이면 NSString을 원하지 않습니다. 이미 찾은 -dataUsingEncoding : 메서드를 사용하여 NSString에서 이러한 바이트 콜렉션을 내보내려고합니다.

3

이 하나

NSString *s = @"Some string"; 
    const char *c = [s UTF8String]; 
+0

에서 구문 오류가 발생합니다. 배열 초기화 프로그램은 초기화 프로그램이거나 문자열 리터럴이어야합니다. – JAHelia

1

가져 오기를 시도

#import "NSString+URLEncoding.h" and 
#import "NSString+URLEncoding.m" files 

후 그 곳 .H 파일 UR하고 인코딩 기록하는 .m 파일 방법이 기입 한 후이 방법

-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding; 

구현

NSString *[email protected]"sample text"; 

같은 것을 사용 여기 UR 문자열을 전달 후 어떤

NSString *url = [NSString stringWithFormat:@"%@",[keyword urlEncodeUsingEncoding:NSUTF8StringEncoding]]; 
NSLog(@"%@",url);