Я не мог заставить это работать.
У меня есть строка html с
НЕ ПРОРЫВАЯ ПРОБЕЛ
</div>Great Guildford St/SouthwarkSt & nbsp;Stop:& nbsp; BM<br>Walk to SE1 0HL<br>
"Great Guildford St/SouthwarkSt \U00a0Stop:\U00a0 BM",
Я пробовал 3 типа кодирования / декодирования
// NSData *asciiData = [instruction dataUsingEncoding:NSUTF16BigEndianStringEncoding];
// NSString *asciiString = [[NSString alloc] initWithData:asciiData
// encoding:NSUTF16BigEndianStringEncoding];
// NSData *asciiData = [instruction dataUsingEncoding:NSASCIIStringEncoding];
// NSString *asciiString = [[NSString alloc] initWithData:asciiData
// encoding:NSASCIIStringEncoding];
//little endian
NSData *asciiData = [instruction dataUsingEncoding:NSUTF16LittleEndianStringEncoding];
NSString *asciiString = [[NSString alloc] initWithData:asciiData
encoding:NSUTF16LittleEndianStringEncoding];
ничего из этого не сработало.
Казалось, они работают, как будто я NSLog строку выглядит нормально
NSLog(@"HAS UNICODE :%@", instruction);
..do encode/decode
NSLog(@"UNICODE AFTER:%@", asciiString);
Какой вывод
HAS UNICODE: St/SouthwarkSt Stop: BM
UNICODE AFTER: St/SouthwarkSt Stop: BM
но я случайно сохранил их в NSArray, и мне пришлось позвонить [stringArray description]
, и весь юникод все еще был там
instructionsArrayString: (
"Great Guildford St/SouthwarkSt \U00a0Stop:\U00a0 BM",
"Walk to SE1 0HL"
)
Итак, что-то в NSLog скрывает
, но это отображается в описании NSArray, так что вы можете подумать, что вы удалили Unicode, когда вы этого не сделали.
Попробую другой метод, который заменит символы.