늦게까지 NSString
의 stringWithFormat:
메서드로 많은 문제가있었습니다. 나는 가운데 맞춤, 오른쪽 맞춤 또는 왼쪽 맞춤 N 줄의 텍스트 (줄 바꿈)를 정렬 할 수있는 개체를 작성했습니다. 내 논리의 핵심은 NSString
의 stringWithFormat
입니다. 이 함수를 사용하여 원하는 줄 맞춤을 만들기 위해 줄마다 공백을 사용하여 줄을 채 웁니다. 다음은 그 예이다 : 당신이 위의 예는 위대한 작품을 볼 수있는NSString stringWithFormat 통화 기호와 같은 특수 문자로 작동하지 않습니다.
NSString *str = @"$3.00" --> 3 dollars
[NSString stringWithFormat:@"%8s", [str cStringUsingEncoding:NSUnicodeStringEncoding]] --> returns --> " $3.00"
, 나는 왼쪽에 3 개 공간을 채워 그 결과 텍스트/오른쪽 정렬 정렬됩니다. 외화 기호를 전달하기 시작할 때 문제가 발생하기 시작합니다. 서식이 바로 위로 올라가는 것은 작동하지 않습니다. 여분의 기호를 추가하거나 그냥 가비지를 반환합니다.
NSString *str = @"Kč1.00" --> 3 Czech Koruna (Czech republic's currency)
[NSString stringWithFormat:@"%8s", [str cStringUsingEncoding:NSUnicodeStringEncoding]] --> returns --> " Kč1.00"
위는 이제 문자열 인코딩 전문가가 아니라고하지만 NSString
기본 ASCII 도메인 외부에 잘 특수 문자에 대한 국제 표준 유니 코드 인코딩을 사용합니다 알고 ... 잘못 알아 단지 평평하다.
문제를 어떻게 해결할 수 있습니까? 어떤 인코딩을 사용해야합니까? 나는 많은 다른 인코딩 enum을 시도했는데, NSMACOSRomanEncoding
에서 NSUTF32UnicodeBigEndian
까지의 모든 것을 잃어 버렸다. 나의 최후의 수단은 stringWithFormat을 완전히 함께 사용하는 것일 것이다. 어쩌면 단순한 UTF8Strings 및 기본 심볼을위한 것일 수도있다.
그런 시도를해도 운이 좋지 않을 것입니다. NSNumberFormatter로 전환하십시오. 이것은 통화가 접두사 인 접미사와 네가티브 등의 로컬 스타일 표현을 포함하여 로케일의 적용 범위를 포함하여 정확하게 목적을 위해 설계되었습니다. –
예, stringWithFormat을 사용하지 않도록 전환 할 것입니다. 감사합니다 – AyBayBay