This uses Unicode canonicalisation rules, and optionally ignores case.

str_equal(x, y, locale = "en", ignore_case = FALSE, ...)

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 the default collation 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