Problemi con caratteri accentati non UTF nell'URL

Stiamo migrando un forum spagnolo e impostando permalink per tutti gli argomenti.
I titoli e gli URL esistenti hanno caratteri accentati in ISO 8859-15 al loro interno, codificati con percent encoding

forum/showthread.php?96700-Galer%EDa-de-im%E1genes

Li stiamo riscrivendo con /forum\\/showthread.php\\?(\\d*).*/thread/\\1 ma sfortunatamente otteniamo un errore del server (con una pagina bianca) prima che venga elaborata la normalizzazione dei permalink.

Puoi vederlo ad esempio su Try:

https://try.discourse.org/forum/showthread.php?96700-Galer�a-de-im�genes restituisce una pagina bianca e “bad request”. Rack::QueryParser::InvalidParameterError (invalid byte sequence in UTF-8)

https://try.discourse.org/forum/showthread.php?96700-Galeria-de-imagenes restituisce la normale pagina “not found”.

Hai qualche consiglio su come aggirare questo problema senza troppe modifiche personalizzate a nginx?

3 Mi Piace

Forse decodificare 96700-Galer%EDa-de-im%E1genes come ISO 8859-15 e codificarlo come UTF-8 prima di generare il permalink è una soluzione? O ci sono effettivamente link in entrata che utilizzano caratteri codificati ISO 8859-15 nell’URL?

Tieni presente che non sono sicuro se sia necessario utilizzare la codifica percentuale affinché i permalink funzionino: non ho guardato il codice. Suppongo che dovrai sperimentare un po’. Non credo ci sia una soluzione facile per questo. Se trovi una soluzione, pubblicala qui. Potrebbe essere utile per altri.

1 Mi Piace

Sì, ci sono circa 150.000 link esterni sui quali non abbiamo alcun controllo.