如何找到"真实" R中Unicode字符串中的字符数

时间:2017-02-27 09:17:31

标签: r string unicode string-length

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

nchar("ABC")

(感谢所有回答此问题的人:http://www.vyapin.com/products/sharepoint-integration/external-data-connector)。

但是Unicode字符串呢?

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

1 个答案:

答案 0 :(得分:5)

您可以nchar使用characters的数量和bytes的数量:

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

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

  

字符串的“大小”可以用三种方式之一测量(对应于类型参数):
  的字节
  存储字符串所需的字节数(加上C中的最终终止符,不计算)。   的字符
  人类可读字符的数量   的宽度
  cat将用于以等宽字体打印字符串的列数。如果无法计算,则与字符相同。

如果你想知道"符号的数量"在可能(或可能不)包含unicode的字符串内(即,没有解释 unicode符号),您可以使用包stri_escape_unicode中的函数stringi

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