Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Retire superfluous quoting of Content-Type: charset [RFC7230]

Aperta Adatta ai principianti
#189 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
92/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
ruby
Ambito
backend

Direzione di ricerca

Leggi lib/webrick/httpservlet/filehandler.rb intorno alla costruzione di charset vicino alla riga 489, quindi riproduci il problema con la richiesta Net::HTTP mostrata nel report. Verifica la formattazione del charset di Content-Type in conformità a RFC 7230 e conferma che la richiesta venga completata senza l'errore unknown-encoding segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
A sender SHOULD NOT generate a quoted-pair in a quoted-string except where necessary

$ open https://www.iana.org/assignments/character-sets/character-sets.xhtml

irb> Encoding.list.flat_map { it.name.delete('0-9A-Za-z').chars }.tally.sort_by(&:first).to_h
=> {"-" => 86, "_" => 1}
$ git diff
diff --git a/lib/webrick/httpservlet/filehandler.rb b/lib/webrick/httpservlet/filehandler.rb
index 4e759d8..2de7785 100644
--- a/lib/webrick/httpservlet/filehandler.rb
+++ b/lib/webrick/httpservlet/filehandler.rb
@@ -489,3 +489,3 @@ module WEBrick
         else
-          type << "; charset=\"#{enc.name}\""
+          type << "; charset=#{enc.name}"
         end
http.send_request('GET', uri.request_uri)
# #<Net::HTTPOK 200 OK readbody=true>
Lingua principale
Ruby
Stelle
327
Fork
113
Merge medio
7g 6h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ruby/webrick

Tutte le issue di ruby/webrick

Issue simili

Altre issue su Ruby

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.