Краткий ответ: Вы не можете сделать это, потому что Mathematica не поддерживает эти символы должным образом.См. В конце поста некоторые обходные пути.
Просто чтобы прояснить некоторые вещи:
Там нет необходимости для 32-разрядногокодировка для обработки более ~ 65000 символов Юникода.Наиболее распространенные кодировки, используемые для Unicode, UTF-8 и UTF-16 , представляют собой многобайтовые кодировки , что означает, что для представления символов используется переменное число байтов.UTF-16 может использовать 2 или 4 байта для представления символа.Ядро Mathematica будет интерпретировать каждую 2-байтовую последовательность как один символ в строке, что иногда приводит к появлению некоторых недопустимых символов (при обнаружении 4-байтовой последовательности).Это можно считать ошибкой.Передний конец довольно уныл от того, как он обрабатывает 4-байтовые последовательности, что, безусловно, является ошибкой.
Ограниченный обходной путь
При работе строго в ядре (например, чтениеданные Unicode из файла), я иногда использую эту функцию в качестве обходного пути, чтобы получить фактическую кодовую точку Unicode из 2-х (4-байтовых) последовательностей UTF-16:
toCodePoint[{a_, b_}] /; 16^^d800 <= a <= 16^^dbff && 16^^dc00 <= b <= 16^^dfff := (a - 16^^d800)*2^10 + (b - 16^^dc00) + 16^4
Вы можете использовать
Split[ToCharacterCode[str], If[16^^d800 <= # <= 16^^dbff, True] &]
для правильного разбиения строки UTF-16 на символы Юникода (длина-один или длина-два, в зависимости от символа).
Это уродливый и неудобный обходной путь, иэто не позволит вам отображать что-либо из этих символов во внешнем интерфейсе, если вы не придумаете для этого также хак, например, импортируете эталонные изображения глифов из unicode.org (по крайней мере, для CJK они есть).
См. Также
См. Мой предыдущий вопрос по этой же теме: Чтение текстового файла в формате Mathematica в кодировке UTF-8
Если вы собираетесь работать с CКроме того, вы можете столкнуться и с этой другой проблемой: Получение внешнего интерфейса Mathematica для поддержки опции FontFamily