Я полагаю, вы имеете в виду разметку по умолчанию? Если вы не установите его в onCreate с помощью setContentView , я думаю, у вас его просто не будет.
Я не думаю, что вы упускаете API, потому что достаточно сложный подход. Я бы попробовал что-то вроде следующего:
/\PM/g
. Это отбрасывает все метки объединения, оставшиеся после преобразования NFC, которые не могут быть преобразованы в Windows-1252 в любом случае. Затем для каждой кодовой точки: Существуют, конечно, другие подходы, которые преобразуют неподдерживаемые символы в символы, которые похожи, но они требуют создания отображений вручную.
Так как кажется, что вы можете конвертировать отдельные символы по мере необходимости (в кодировку cp-1252), один из способов заключается в том, чтобы обрабатывать символ за символом, как это предлагается, когда слово не проходит процедуру.
\X
в регулярном выражении Perl соответствует логическому символу Unicode, расширенному кластеру графем , либо как одна кодовая точка, либо как последовательность. Так что если вы действительно можете преобразовать все отдельные (логические) символы в нужную кодировку, то с помощью
while ($word =~ /(\X)/g) { ... }
вы можете получить доступ к логическим символам и применить свою рабочую процедуру к каждому.
В случае, если вы не можете обработать все логические символы, которые могут появиться, соедините эквивалент \X
, используя специфические свойства символов , для более тонкой детализации с комбинированием меток или тому подобного (например, /((.)\p{Mn}?)/
или \p{Nonspacing_Mark}
). Полный, большой, список находится в perluniprops .