La codifica dei caratteri nello standard ASCII originario (a 7 bit) associa i numeri da 0 a 127 ad un carattere ben preciso, ove i numeri da 32 a 126 corrispondono. fra l'altro, in sotto-insiemi, alle cifre numeriche, ai segni di interpunzione ed ai caratteri corrispondenti all'alfabeto latino (dalla A alla Z con le lettere in maiuscolo e minuscolo).
Quando il codice è stato esteso ad 8 bit, per contemplare caratteri ulteriori, dai 128 caratteri originari si è passati a 256 elementi (da 0 a 255) mantenendo la codifica precedente ed estendo i caratteri da 128 a 255).
In tale occasione vennero codificati simboli e lettere aggiuntive specifiche (come le vocali accentate).
Si è passati poi ai "codepage", su PC in ambito DOS. per associare l'insieme dei caratteri ASCII ad una personalizzazione legata al paese di impiego.
Con l'avvento dei sistemi grafici si è sentita l'esigenza di una ulteriore codifica in modo da sfruttare più caratteri e permettere di utilizzare contemporaneamente più set di caratteri provenienti da lingue diverse; è stato pertanto generato lo standard Unicode.
Dagli iniziali 65.536 caratteri (sfruttando 16 bit) si è passati ad ordine di grandezza più ampio (impiegando un numero di bit più esteso) i quali sono confluiti nello standard ISO 8859 in grado di supportare gli alfabeti di diverse lingue, attraverso l'identificazione degli innumerevoli simboli e segni che le compongono.
http://www.usabile.it/unicode.ht
http://www.carminenoviello.com/it/2008/05/20/unicode-in-5-minuti/
Ora ritornando al problema in oggetto, in base all'esempio citato, se ricerchi l'indirizzo "Nixhütter Weg", come ti ho indicato contiene un carattere "ü" che non fa parte del set di caratteri ASCII (semplice o esteso) ma impiega un carattere Unicode disposto su 16 bit.
Infatti se verifichi con un editor, in grado di osservare la codifica di ciascun carattere, potrai avere una situazione del genere:
stringa: Nixhütter Weg
caratteri: N i x h ü t t e r W e g
decimale: 78 105 120 104 195 188 116 116 101 114 32 87 101 103
esadecimale: 4E 69 78 68 C3 BC 74 74 65 72 20 57 65 67
binario: 01001110 01101001 01111000 01101000 11000011 10111100 01110100 01110100 01100101 01110010 00100000 01010111 01100101 01100111
URL encoded : Nixh%C3%BCtter+Weg
HTML entities: Nixhütter Weg
ove, quindi, il carattere "ü" viene codificato nella sequenza dei bit corrispondenti a 195 e 188 in decimale (o C3 e BC in esadecimale).
Da considerare, pertanto, che qualora i caratteri eccedono 127 (in decimale) ci troviamo nel set dei caratteri estesi.
Se devi ricondurli al set standard dei caratteri ASCII (fino a 127 ove sono presenti le semplici lettere alfabetiche) dovrai effettuare una conversione dalla sequenza dei caratteri estesi in modo da riportarli ad un insieme ridotto e definito che non crei ulteriori problemi di conversione in quanto viene preso a riferimento (in modo fisso) fra i vari passaggi.
Pertanto tutti i caratteri che eccedono i set standard originario (dotati di accento, dierisi, cediglia, segni diacritici, ecc.) che eccedono il codice ASCII 127 dovranno essere ricondotti, per quanto possibile, all'insieme di base.
Sulla scorta dell'esempio, dovrai implementare una funzione di conversione in grado di ricondurre la lettera "ü" alla semplice "u" (codificato ASCII come 117 in decimale o 75 in esadecimale) che più si avvicina al carattere originario.
Attraverso ciò il browser non effettuerà modifiche ulteriori e la stringa di ricerca verrà fornita a Google Maps per il trattamento di individuazione del sito.
Dopodichè Google Maps procederà, con il suo algoritmo, a trattare la stringa di ricerca al fine di individuare se è riconducibile, nei suoi componenti, agli elementi presenti nel suo database e se l'indirizzo risulta confacente ne presenterà la mappa.
Altrimenti, come ti ho indicato precedentemente devi agire in base al tuo browser per impostare il set di caratteri estesi (Unicode) della lingua che vuoi supportare.