L'uso di “utf8 = ✓” è preferibile a “utf8 = true”?


569

Di recente ho visto alcuni URI contenenti il ​​parametro di query "utf8 = ✓". La mia prima impressione (dopo aver pensato "mmm, sembra bello") è stata che questo potrebbe essere usato per rilevare una codifica di caratteri rotti.

Quindi, questo è un modo migliore per risolvere potenziali problemi con la codifica dei caratteri o è solo uno sviluppatore che si diverte con un hack?


7
Non sono d'accordo. Ci sono schemi là fuori che sembrano URN e che accettano parametri di query - come Bitcoin. Gli URI non sono limitati ai browser. Vedi en.wikipedia.org/wiki/URI_scheme . Questa domanda può anche riguardare il caso generale in cui è richiesta la codifica dei caratteri quando un browser accede a un gestore di protocollo.
Gary Rowe,

3
Fornisci esempi di questi URL o non è successo.
hakre,

10
Fuori tema, ma OK. Ecco la mia donazione personale URI Bitcoin: bitcoin: 1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH? Amount = 0.5 & label = Agile% 20Stack. Si noti che lo schema è essenzialmente un URN con parametri di query, ma passa a un gestore di protocollo. Questo tipo di URI potrebbe probabilmente beneficiare anche della soluzione alternativa "utf8 = ✓".
Gary Rowe,

1
@GaryRowe Quindi hai mai ricevuto donazioni da quel link?
Kyralessa,

Risposte:


814

Per impostazione predefinita, se possibile, le versioni precedenti di IE (<= 8) invieranno i dati del modulo con codifica Latin-1. Includendo un carattere che non può essere espresso in latino-1, IE è costretto a utilizzare la codifica UTF-8 per i suoi invii di moduli, il che semplifica vari processi di back-end, ad esempio la persistenza del database.

Se il parametro fosse invece, utf8=trueciò non attiverebbe la codifica UTF-8 in questi browser.


8
@LarsViklund Avrei dovuto essere più chiaro con il mio commento. Volevo dire che la convalida associata alla codifica dei caratteri è semplificata, non ignorata.
Gary Rowe,

3
@Lars Correct, non ti assolve dal dover controllare i tuoi input. Ciò significa che le modifiche alla codifica diventano parte della gestione della sicurezza e non contaminano il concetto del percorso di "elaborazione standard"
Gareth,

36
Vedi anche stackoverflow.com/questions/3222013/… . Apparentemente Ruby on Rails usava un personaggio di pupazzo di neve, e fu cambiato in un segno di spunta che era meno ambiguo ma meno divertente.
Jack V.

11
@JohnLBevan viene ignorato dalla fine della ricezione, ha fatto il suo lavoro per forzare il browser a inviare cose in utf8 invece che in latino1. L'ho anche visto come ie = 💩 (questo è il punto di codice 'pile of poo', sembra che non sia reso nei commenti.)
cabbey,

3
@Gareth: è possibile eseguire il backup dell'istruzione secondo cui IE <= 8 moduli non supporta il documento e / o la codifica dei moduli?
Hacre,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.