aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rwxr-xr-xbin/erb2
-rw-r--r--test/erb/test_erb_command.rb6
3 files changed, 9 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 6388f0253f..3444154d46 100644
--- a/NEWS
+++ b/NEWS
@@ -143,6 +143,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* ERB
* Add ERB#result_with_hash to render a template with local variables passed
with a Hash object. [Feature #8631]
+ * Default template file encoding is changed from ASCII-8BIT to UTF-8 in erb
+ command. [Bug #14095]
* Carriage returns are changed to be trimmed properly if trim_mode is specified
and used. Duplicated newlines will be removed on Windows. [Bug #5339] [Bug #11464]
diff --git a/bin/erb b/bin/erb
index 6a88c3b26a..86f7042fae 100755
--- a/bin/erb
+++ b/bin/erb
@@ -122,7 +122,7 @@ EOU
exit 1
end
- $<.set_encoding(Encoding::ASCII_8BIT, nil)
+ $<.set_encoding(Encoding::UTF_8, nil)
src = $<.read
filename = $FILENAME
exit 2 unless src
diff --git a/test/erb/test_erb_command.rb b/test/erb/test_erb_command.rb
index 406b14cdb3..7e2b874632 100644
--- a/test/erb/test_erb_command.rb
+++ b/test/erb/test_erb_command.rb
@@ -9,4 +9,10 @@ class TestErbCommand < Test::Unit::TestCase
"var=hoge"],
"<%=var%>", ["hoge"])
end
+
+ def test_template_file_encoding
+ assert_in_out_err(["-w",
+ File.expand_path("../../../bin/erb", __FILE__)],
+ "<%=''.encoding.to_s%>", ["UTF-8"])
+ end
end