2012-08-01 2 views
1

ASCII 문자 변환기를 구현하려고했습니다. 코드는 내가대용 문자로 변환하는 ASCII 문자가 확장 ASCII 문자에 대해 올바르지 않음

는 여러 가지 변화가 있음을 발견 here에서

는 사과의 문자를 보여줍니다 127 후 127 개까지
[NSString stringWithFormat:@"%c",ascii] 

그것은 아스키를 위해 잘 작동 특수 문자

입니다 8 비트 ASCII 표. 변환하는 동안

은 내가

ISO 8859-1, 또한 ISO 라틴어 1

라는 아스키이 필요합니다. 어떻게하면 ISO 8859-1로 APPLE의 특별한 caracters 이외의 아스키로 변환 할 수 있습니다.

답변

0

문자 인코딩 문제가 발생했으며 인코딩 라이브러리를 만들었습니다. 이 라이브러리는 ISO Latin-1을 지원하지 않지만 "NSISolatin1StringEncoding"과 함께 사용할 수 있다고 생각합니다.

내부 코드

은 다음과 같습니다 :

+ (NSString *)encodedStringWithContentsOfURL:(NSURL *)url 
{ 
    // Get the web page HTML 
    NSData *data = [NSData dataWithContentsOfURL:url]; 

    // response 
    int enc_arr[] = { 
     NSUTF8StringEncoding,   // UTF-8 
     NSShiftJISStringEncoding,  // Shift_JIS 
     NSJapaneseEUCStringEncoding, // EUC-JP 
     NSISO2022JPStringEncoding,  // JIS 
     NSUnicodeStringEncoding,  // Unicode 
     NSASCIIStringEncoding   // ASCII 
    }; 
    NSString *data_str = nil; 
    int max = sizeof(enc_arr)/sizeof(enc_arr[0]); 
    for (int i=0; i<max; i++) { 
     data_str = [ 
        [NSString alloc] 
        initWithData : data 
        encoding : enc_arr[i] 
        ]; 
     if (data_str!=nil) { 
      break; 
     } 
    } 
    return data_str;  
} 

당신은 https://github.com/weed/p120801_CharacterEncodingLibrary

에서이 라이브러리를 다운로드 할 수 있습니다 내 조언이 도움이 될 바랍니다. asciiString가 null 바이트 다음에 당신의 ascii 문자입니다

2
[NSString stringWithCString:asciiString encoding:NSISOLatin1StringEncoding]; 

.

+1

조언을 주셔서 감사합니다. 내 문제를 이해하지 못했다고 생각합니다. ascii 번호에서 ascii chrecter를 사용할 수 없습니다. 아스키 번호의 ASCII 체어러를 어떻게 구할 수 있습니까? 정수를 할당하는 것은 알고 있지만 asciinumber가 127보다 큰 사과의 특수 문자 – Johnykutty

+0

좀 더 구체적인 것을 원하면 질문에 세부 사항과 컨텍스트를 추가해야합니다. 왜이 솔루션으로 충분하지 않을까요? 왜 캐릭터가 필요합니까 (즉, 캐릭터의 사용 의도)? 캐릭터를 어떻게 표현하고 있습니까? – jtomschroeder

관련 문제