Проблема начинается, когда я натыкаюсь на символы Юникода. Например, árbol. Прямо сейчас я справиться с этим, спрашивая, если символ в позиции i
, то есть string (i:i)
меньше 127. Это означает, что он принадлежит к таблице ASCII, с этим я точно знаю, что string (i:i)
является полный одиночный символ , В другом случае (>= 127)
и для моего примера «árbol», string (1,2)
- полный символ.Извлечение одного символа Юникода из строки
Я думаю, что способ обработки строк решает проблему в моих практических целях (обработка файлов на испанском, польском и русском языках), но в случае обработки китайского письма, где символы могут занимать до 4 байт, тогда я будет иметь проблемы.
Есть ли способ в fortran выделить символы Unicode внутри строки?
Поддерживает ли ваш процессор Fortran тип символа ISO 10646 (т. Е. UCS-4)? Если это так, и вы используете этот характер, то ссылка на один символ - тривиальная операция. – IanH
предположим, что он поддерживает, как я могу ссылаться на один символ. Это связано с использованием модуля ISO_FORTRAN_ENV – puillitoto
'string (i: i)' (я сказал, что это было тривиально!) С характером символа ISO 10646 каждый символ в строке представляет собой кодовую точку юникода. Значение, используемое для типа символа для ISO 10646, может быть получено с использованием встроенного 'SELECTED_CHAR_KIND'. – IanH