diff --git a/src/djlint/__init__.py b/src/djlint/__init__.py index 6b4ab1e..8c27808 100644 --- a/src/djlint/__init__.py +++ b/src/djlint/__init__.py @@ -128,7 +128,7 @@ def main( temp_file = None if "-" in src: - stdin_stream = click.get_text_stream("stdin") + stdin_stream = click.get_text_stream("stdin", encoding="utf8") stdin_text = stdin_stream.read() temp_file = tempfile.NamedTemporaryFile(delete=False) diff --git a/tests/test_djlint/test_djlint.py b/tests/test_djlint/test_djlint.py index cdc0b77..4de05b9 100644 --- a/tests/test_djlint/test_djlint.py +++ b/tests/test_djlint/test_djlint.py @@ -120,6 +120,20 @@ def test_stdin(runner: CliRunner) -> None: assert result.output == "
\n" +def test_stdin_non_ascii(runner: CliRunner) -> None: + result = runner.invoke(djlint, ["-", "--reformat"], input="必須") + assert result.output == "必須\n" + + result = runner.invoke(djlint, ["-", "--reformat"], input="Вход") + assert result.output == "Вход\n" + + result = runner.invoke(djlint, ["-", "--reformat"], input="çéâêîôûàèìòùëïü") + assert result.output == "çéâêîôûàèìòùëïü\n" + + result = runner.invoke(djlint, ["-", "--reformat"], input="😀😂🤣😆🥰") + assert result.output == "😀😂🤣😆🥰\n" + + def test_check(runner: CliRunner, tmp_file: TextIO) -> None: write_to_file(tmp_file.name, b"") result = runner.invoke(djlint, [tmp_file.name, "--check"])