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
This commit is contained in:
k0kubun 2017-11-10 13:59:01 +00:00
Родитель 7dae879770
Коммит e16bd0f4d8
3 изменённых файлов: 9 добавлений и 1 удалений

2
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]

Просмотреть файл

@ -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

Просмотреть файл

@ -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