如何在R中找到Unicode字符串的“真实”字符数

4

我知道如何在R中找到非Unicode字符串的长度。

nchar("ABC")

感谢在这里回答问题的所有人:如何在R中找到字符串的长度?

但是对于Unicode字符串呢?

如何在Unicode字符串中查找字符串的长度(字符串中字符的数量)?如何在R中查找Unicode字符串的长度(以字节为单位)和字符数(符文、符号)?

1个回答

6

您可以使用 nchar 来表示字符数,使用 bytes 来表示字节数:

nchar("bi\u00dfchen", type="chars")
#[1] 7
nchar("bi\u00dfchen", type="bytes")
#[1] 8

在帮助中,您可以找到有关如何计算字符串大小的详细信息:

字符字符串的“大小”可以用三种方式之一来测量(对应类型参数):

bytes:存储字符串所需的字节数(在C语言中还需加上结尾的结束符,但不计算在内)。

chars:可读取的字符数。

width:使用等宽字体打印字符串时,cat命令将使用的列数。如果无法计算,则与chars相同。

如果您想知道字符串中包含的“符号”的数量(可能包含Unicode,也可能不包含Unicode,即未经过解释的Unicode符号),可以使用来自stringi包的函数stri_escape_unicode

library(stringi)
nchar(stri_escape_unicode("bi\u00dfchen")) # same as stri_length(stri_escape_unicode("bi\u00dfchen"))
# [1] 12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接