From e16bd0f4d81ef74035712853a5eb527f28abb342 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Fri, 10 Nov 2017 13:59:01 +0000 Subject: bin/erb: change template file encoding to UTF-8 Unlike Ruby source file encoding (script encoding) whose default is changed to UTF-8 in Ruby 2.0 (Feature #6679), template's file encoding given to erb(1) has been ASCII-8BIT since ERB supports m17n at r21170. Like Ruby source file encoding, erb template file encoding should be UTF-8 in Ruby 2. [Bug #14095] [ruby-core:83708] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 2 ++ bin/erb | 2 +- test/erb/test_erb_command.rb | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3