This uses Unicode canonicalisation rules, and optionally ignores case.
Arguments
- x, y
A pair of character vectors.
- locale
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
Ignore case when comparing strings?
- ...
Other options used to control collation. Passed on to
stringi::stri_opts_collator()
.
See also
stringi::stri_cmp_equiv()
for the underlying implementation.
Examples
# 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