Суррогатные пары Unicode в IOS?

У меня есть суррогатная пара, пример ниже:

=83d=04

Я хочу знать, как получить соответствующее значение значения, например «1F604».

Любой пример кода?

Любая помощь будет ощутимой?


person Jeff    schedule 19.03.2013    source источник
comment
stackoverflow.com/ вопросы/9062923/   -  person iPatel    schedule 19.03.2013
comment
@iPatel спасибо за ваш ответ. Я новичок в разработке iPhone. Поэтому я не знаю, как использовать приведенный выше код. Не могли бы вы помочь?   -  person Jeff    schedule 19.03.2013


Ответы (1)


Чтобы преобразовать суррогатную пару в символ UTF-32 или значение кодовой точки, используйте CFStringGetLongCharacterForSurrogatePair. Например:

UniChar high = 0xd83d;
UniChar low = 0xde04;

UTF32Char c = CFStringGetLongCharacterForSurrogatePair(high, low);
person 一二三    schedule 19.03.2013
comment
Спасибо за ответ. Но тогда как в моем случае перейти ==04 к 'высокому' и 'низкому' - person Jeff; 19.03.2013
comment
тогда я получаю 128516 не как 1F604? - person Jeff; 20.03.2013
comment
128516 совпадает с 0x1F604 в hex. - person 一二三; 20.03.2013