1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Use section sign instead of Hiragana Letter A

It can convert to Windows-1252and Windows-31J.

```
"\u00a7".encode("Windows-1252") #=> "\xA7"
"\u00a7".encode("Windows-31J")  #=> "\x{8198}"
```

788357527 (step):14:959
```
  1) Failure:
WEBrick::TestFileHandler#test_cjk_in_path [D:/a/ruby/ruby/src/test/webrick/utils.rb:72]:
exceptions on 2 threads:
webrick log start:
  [2020-06-19 14:49:38] ERROR Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and Windows-1252
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `+'
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `set_filename'
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:310:in `exec_handler'
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:245:in `do_GET'
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/abstract.rb:105:in `service'
  	D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:241:in `service'
  	D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:140:in `service'
  	D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:96:in `run'
  	D:/a/ruby/ruby/src/lib/webrick/server.rb:307:in `block in start_thread'
```
This commit is contained in:
Kazuhiro NISHIYAMA 2020-06-20 00:17:07 +09:00
parent 32e2440a66
commit 640e6c9be6
No known key found for this signature in database
GPG key ID: 262ED8DBB4222F7A

View file

@ -288,9 +288,9 @@ class WEBrick::TestFileHandler < Test::Unit::TestCase
end
end
def test_cjk_in_path
Dir.mktmpdir("\u3042") do |dir|
File.write("#{dir}/\u3042.txt", "test_cjk_in_path")
def test_multibyte_char_in_path
Dir.mktmpdir("\u00a7") do |dir|
File.write("#{dir}/\u00a7.txt", "test_multibyte_char_in_path")
begin
dir = dir.encode('filesystem')
rescue EncodingError
@ -300,9 +300,9 @@ class WEBrick::TestFileHandler < Test::Unit::TestCase
TestWEBrick.start_httpserver(config) do |server, addr, port, log|
http = Net::HTTP.new(addr, port)
begin
path = "/\u3042.txt".encode('filesystem')
path = "/\u00a7.txt".encode('filesystem')
rescue EncodingError
path = "/\u3042.txt".force_encoding(Encoding::ASCII_8BIT)
path = "/\u00a7.txt".force_encoding(Encoding::ASCII_8BIT)
end
req = Net::HTTP::Get.new(WEBrick::HTTPUtils::escape(path))
http.request(req){|res| assert_equal("200", res.code, log.call + "\nFilesystem encoding is #{Encoding.find('filesystem')}") }