Domanda

Quando si crea contenuti web in lingue diverse da quella inglese il problema del motore di ricerca ottimizzato e user friendly URL emergere.

Mi chiedo se è la pratica migliore per utilizzare le lettere accentate de-in URL - rischiando che alcuni parole hanno significati completamente diversi con e senza alcuni accenti - o è meglio attenersi a l'uso di non caratteri inglesi, se del caso sacrificare la leggibilità di tali URL in ambienti meno avanzati (ad esempio MSIE, visualizza sorgente).

lettere "esotici" potrebbero apparire ovunque:. Nei titoli dei documenti, nei tag, in nomi utente, ecc, quindi non sono sempre sotto la supervisione completa del manutentore del sito web

Un possibile approccio, naturalmente, sarebbe la creazione di alternativa - non accentata - URL oltre che puntare alla destinazione originale, ma vorrei conoscere le vostre opinioni su come utilizzare gli URL accentati come principale identificatori documento.

È stato utile?

Soluzione

Di fronte a un problema simile, ho approfittato di riscrittura degli URL per consentire tali pagine per essere accessibile sia dal carattere accentato o non accentate. L'URL effettivo sarebbe qualcosa di simile

http://www.mysite.com/myresume.html

E una funzione riscrittura + carattere traducendo permette questo riferimento

http://www.mysite.com/myresumé.html

per caricare la stessa risorsa. Quindi, per rispondere alla tua domanda, come il principale identificatore di risorsa, mi limito a 0-9, A-Z, a-z e il trattino occasionale.

Altri suggerimenti

Non c'è alcuna ambiguità qui: RFC3986 dice no , cioè, gli URI non può contenere caratteri unicode, solo ASCII.

Una cosa completamente diversa è come i browser rappresentano caratteri codificati durante la visualizzazione di un URI, ad esempio, alcuni browser visualizzerà uno spazio in un URL al posto di '% 20'. Questo è come funziona troppo IDN: stringhe punycoded sono codificati e decodificati dai browser al volo, quindi se si visita cafe.com, sei davvero in visita xn--caf-dma.com. Quello che sembra essere caratteri unicode negli URL è in realtà solo 'di zucchero visiva' da parte del browser: se si utilizza un browser che non supporta IDN o Unicode, la versione codificata non funzionerà perché la definizione di fondo di URL semplicemente non lo supporta, in modo per farlo funzionare in modo coerente, è necessario codificare%.

Considerando gli URL con accenti spesso tendono a finire in cerca in questo modo:

http://fr.wikipedia.org/wiki/%C3%89l%C3%A9phant

... che non è bella ... Credo che saremo ancora utilizzeremo URL de-accentuato da qualche tempo.

Anche se, le cose dovrebbero andare meglio, come URL accentate sono ora accettati dai browser web, a quanto pare.

La Firefox 3.5 Attualmente sto usando visualizza l'URL del bel modo, e non con roba%, btw; questo sembra essere "nuovo" dal momento che Firefox 3.0 (vedi Firefox 3: supporto UTF-8 in posizione bar ); così, non probabilmente non supportati in IE 6, almeno - e ci sono ancora abbastanza troppe persone che utilizzano questo: - (


Forse URL senza accento non sono alla ricerca il meglio che poteva essere; ma, ancora, la gente è abituata a loro, e sembrano a loro capire generalmente abbastanza bene.

Si dovrebbe evitare di caratteri non ASCII in URL che possono essere inseriti in del browser manualmente dagli utenti. E 'ok per link incorporati pre-codificati da server.

Abbiamo scoperto che il browser può codificare l'URL in modo diverso ed è molto difficile da capire che cosa codifica che utilizza. Vedere la mia domanda su questo tema,

Handling codifica dei caratteri in URI su Tomcat

Ci sono diverse aree in un URL completo, e ognuno potrebbe ha regole diverse. Il protocollo è ASCII. La voce DNS è governato da IDN (International Domain Names) regole, e può contenere (la maggior parte) dei caratteri Unicode. Il percorso (dopo il primo /), il nome utente e la password può ancora essere tutto. Essi sono fuggiti (come% XX), ma questi sono solo byte. Qual è la codifica di questi byte è difficile sapere (è interpretato dal server http). La parte parametri (dopo il primo?) È passato "così come sono" (dopo% XX unescapeing) per qualche cosa un'applicazione lato server (php, asp, jsp, cgi), e in che modo che interpreta il byte è un'altra storia). Si raccomanda che il percorso / utente / password / argomenti sono utf-8, ma non obbligatorio, e non tutti rispettano questo.

Quindi, si dovrebbe assolutamente consentire la non-ASCII (non siamo negli anni '80 più), ma esattamente quello che fai con il che potrebbe essere difficile. Provare a utilizzare Unicode e stare lontano da pagine di codice legacy, contrassegnare il contenuto con la corretta codifica / charset se è possibile (tramite meta in html, direttive di lingua per asp / jsp, ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top