diff --git a/crates/nu-command/src/strings/str_/case/downcase.rs b/crates/nu-command/src/strings/str_/case/downcase.rs index 3918689deac9..a5984ffc9a3b 100644 --- a/crates/nu-command/src/strings/str_/case/downcase.rs +++ b/crates/nu-command/src/strings/str_/case/downcase.rs @@ -121,7 +121,7 @@ fn operate( fn action(input: &Value, head: Span) -> Value { match input { - Value::String { val, .. } => Value::string(val.to_ascii_lowercase(), head), + Value::String { val, .. } => Value::string(val.to_lowercase(), head), Value::Error { .. } => input.clone(), _ => Value::error( ShellError::OnlySupportsThisInputType { diff --git a/crates/nu-command/tests/commands/str_/mod.rs b/crates/nu-command/tests/commands/str_/mod.rs index 5e136b40b8c0..382f2bf20fe9 100644 --- a/crates/nu-command/tests/commands/str_/mod.rs +++ b/crates/nu-command/tests/commands/str_/mod.rs @@ -76,6 +76,13 @@ fn downcases() { }) } +#[test] +fn non_ascii_downcase() { + let actual = nu!("'ὈΔΥΣΣΕΎΣ' | str downcase"); + + assert_eq!(actual.out, "ὀδυσσεύς"); +} + #[test] fn upcases() { Playground::setup("str_test_4", |dirs, sandbox| { @@ -96,6 +103,13 @@ fn upcases() { }) } +#[test] +fn non_ascii_upcase() { + let actual = nu!("'ὀδυσσεύς' | str upcase"); + + assert_eq!(actual.out, "ὈΔΥΣΣΕΎΣ"); +} + #[test] #[ignore = "Playgrounds are not supported in nu-cmd-extra"] fn camelcases() {