String equivalence should be case- and locale-insensitive
brynrhodes opened this issue · comments
String equivalence does not appear to be case- and locale-insensitive
define T2: 'Abel' ~ 'abel' // true
@brynrhodes - Please clarify your requirements: "String equivalence should be case- and locale-insensitive"
-
Are you saying that Equivalent(String,String) should be case-sensitive ('Abel' ~ 'abel' is false) or case-insensitive ('Abel' ~ 'abel' is true)?
-
Are you saying that Equivalent(String,String) should behave identically for all users (locale-insensitive) or that its behaviour should change depending on what the current user's system locale settings are (locale sensitive)?
For some context: The CQL spec definitions of the Lower() and Upper() operators state: "Note that the definition of [lower/upper]case for a given character is a locale-dependent determination, and is not specified by CQL." Also, the definitions of Matches() and ReplaceMatches() state: "Regular expressions should function consistently, regardless of any culture- and locale-specific settings in the environment, should be case-sensitive, use single line mode, and allow Unicode characters."
The CQL spec generally doesn't seem to say anything about locale besides with the above operators.