В качестве ответа на комментарий в другом ответе я бы порекомендовал постер к
- генерирует строку UTF8 переносимым способом в
char*
- и в последнюю минуту преобразовать его в
CFString
, используя CFStringCreateWithCString
с kCFStringEncodingUTF8
в качестве кодировки.
Пожалуйста, не используйте %s
в CFStringCreateWithFormat
. Пожалуйста, не полагайтесь на «системную кодировку», которая используется MacRoman в западноевропейских средах, но не на других языках. Концепция системного кодирования изначально неразумна, особенно в восточноазиатских средах (откуда я пришел), где даже символы внутри диапазона кода ASCII (ниже 127!) Модифицируются. Ад сломается, если вы полагаетесь на «системное кодирование». К счастью, начиная с 10.4, все методы, использующие «системное кодирование», теперь устарели, , кроме %s
....
Извините, я так много пишу для этой небольшой темы, но несколько лет назад было очень жаль, когда было много хороших приложений, которые не работали на японских / корейских компьютерах Mac только из-за этой "системной кодировки". " Пожалуйста, обратитесь к этому подробному объяснению , которое я написал несколько лет назад, если вам интересно.