This uses Unicode canonicalisation rules, and optionally ignores case.
str_equal(x, y, locale = "en", ignore_case = FALSE, ...)
A pair of character vectors.
Locale to use for comparisons. See
stringi::stri_locale_list()
for all possible options.
Defaults to "en" (English) to ensure that default behaviour is
consistent across platforms.
Ignore case when comparing strings?
Other options used to control collation. Passed on to
stringi::stri_opts_collator()
.
An logical vector the same length as x
/y
.
stringi::stri_cmp_equiv()
for the underlying implementation.
# These two strings encode "a" with an accent in two different ways
a1 <- "\u00e1"
a2 <- "a\u0301"
c(a1, a2)
#> [1] "á" "á"
a1 == a2
#> [1] FALSE
str_equal(a1, a2)
#> [1] TRUE
# ohm and omega use different code points but should always be treated
# as equal
ohm <- "\u2126"
omega <- "\u03A9"
c(ohm, omega)
#> [1] "Ω" "Ω"
ohm == omega
#> [1] FALSE
str_equal(ohm, omega)
#> [1] TRUE