Ответ 1
Вы можете использовать nchar
для числа characters
и для числа bytes
:
nchar("bi\u00dfchen", type="chars")
#[1] 7
nchar("bi\u00dfchen", type="bytes")
#[1] 8
В самом деле, в справке вы можете найти информацию о том, как вычислить размер строки:
Размер символьной строки можно измерить одним из трех способов (в соответствии с аргументом типа):
байт
Количество байтов, необходимых для хранения строки (плюс в C конечный терминатор, который не учитывается). символы
Число человекочитаемых персонажей.
ширина
Количество столбцов cat будет использоваться для печати строки в моноширинном шрифте. То же, что и символы, если это невозможно вычислить.
Если вы хотите узнать количество "символов" внутри строки, которая может содержать (или не указывать) юникод (т.е. без интерпретации символа юникода), вы можете использовать функцию stri_escape_unicode
из пакета stringi
:
library(stringi)
nchar(stri_escape_unicode("bi\u00dfchen")) # same as stri_length(stri_escape_unicode("bi\u00dfchen"))
# [1] 12