Unquote and unescape Content-Type: charset [RFC7230]
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 83/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- ruby
- Domínio
- networking
Direção de pesquisa
Comece em lib/net/http/header.rb, no código de análise de parâmetros mostrado na issue, e depois execute a reprodução fornecida de Net::HTTP contra uma resposta com um charset entre aspas. Verifique se os parâmetros de Content-Type entre aspas e com escape produzem um nome de encoding válido e se o request é concluído com sucesso; adicione cobertura de regressão se os testes existentes do repositório oferecerem um local adequado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
uri = URI('http://127.0.0.1:8080')
http = Net::HTTP.new(uri.hostname, uri.port)
http.response_body_encoding = true
http.send_request('GET', uri.request_uri)
/opt/homebrew/lib/ruby/gems/4.0.0/gems/net-http-0.9.1/lib/net/http/response.rb:381:in 'String#force_encoding': unknown encoding name - "UTF-8" (ArgumentError)
@body.force_encoding(enc) if enc
from /opt/homebrew/lib/ruby/gems/4.0.0/gems/net-http-0.9.1/lib/net/http/response.rb:381:in 'Net::HTTPResponse#read_body'
$ curl -I http://127.0.0.1:8080/
Content-Type: text/html; charset="UTF-8"
Server: WEBrick/1.9.2 (Ruby/4.0.1/2026-01-13)
$ open https://www.rfc-editor.org/rfc/rfc7230#section-3.2.6
[3.2.6](https://www.rfc-editor.org/rfc/rfc7230#section-3.2.6). Field Value Components
quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
$ git diff
diff --git a/lib/net/http/header.rb b/lib/net/http/header.rb
index 797a3be..fe026ae 100644
--- a/lib/net/http/header.rb
+++ b/lib/net/http/header.rb
@@ -762,3 +762,3 @@ module Net::HTTPHeader
k, v = *param.split('=', 2)
- result[k.strip] = v.strip
+ result[k.strip] = v.strip.gsub(/\A"(.*?)(?<!\\)"\z/) { $1.gsub(/\\(.)/, '\1') }.strip
end
http.send_request('GET', uri.request_uri)
# #<Net::HTTPOK 200 OK readbody=true>
- Linguagem predominante
- Ruby
- Estrelas
- 148
- Forks
- 95
- Merge médio
- 10h 54min
- PRs com merge (30d)
- 4
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de ruby/net-http
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
-
bug documentation
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
Todas as issues de ruby/net-http
Issues semelhantes
-
user-reported
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Kong/developer.konghq.com#7316 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
TheOdinProject/curriculum#31408 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
notch8/utk_knapsack#148 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
Homebrew/homebrew-cask#288729 · 1 comentário ·
-
Test `FileUtils.options_of` Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100