5

Obecnie pracujemy nad projektem I18N. Zastanawiam się, jakie są komplikacje związane z posiadaniem znaków spoza zestawu ASCI w adresie URL. Jeśli nie jest to zalecane, jakie są alternatywy dla rozwiązania tego problemu?Czy wskazane jest, aby w adresie URL były znaki spoza zestawu ASCII?

EDIT (w odpowiedzi na odpowiedź Maxym'S): Witryna będzie lokalny do danego kraju i nie muszę się martwić o World Wide publiczny dostęp do tej strony. Rozumiem, że z punktu widzenia użyteczności, To jest naprawdę denerwujące. Jakie są inne problemy techniczne z tym związane?

+0

Dobrze, jeśli pracujesz na miejscu i18n, to znaczy, że przetłumaczysz swoją stronę na kilka języków ... Oznacza to, że oczekujesz ludzi z innych krajów, co sprawia, że ​​twoja strona nie jest lokalna :) Oczywiście mogę się mylić, jeśli twoi ludzie w twoim kraju używają kilku języków , specyficzne dla twojego kraju tylko – Maxym

+0

, jeśli używasz nie ASCII w jaki sposób użytkownicy będą pisać ze standardową klawiaturą ??? – wenn32

+0

Ich standardowa klawiatura obsługuje je. – Broam

Odpowiedz

3

możliwe jest używanie nazw domen non-ASCII/niełacińskie użyciu IDNA Ponadto, zawsze można użyć procent kodowania (jak %20 dla przestrzeni) w adresach URL RFC 3986 zaleca kodowanie UTF-8 w połączeniu z procenetrami:

dane powinny być najpierw zakodowane jako oktety zgodnie z kodowaniem znaków UTF-8 ; wówczas tylko oktety , które nie odpowiadają znakom w niezarezerwowanym zbiorze , powinny być kodowane procentowo. (...) Dla przykładu, na przykład A byłby oznaczony jako "A", znak LATIN CAPITAL LIST A A WITH GRAVE byłby reprezentowany jako "% C3% 80", a znak KATAKANA LETTER A jest reprezentowany jako "% E3% 82% A2".

Nowoczesne klientów (przeglądarek internetowych) są able przekształcić tę iz powrotem między procentami kodowania Unicode, więc URL są przesyłane jako ASCII, ale wygląda całkiem dla użytkownika.

Upewnij się, że używasz frameworka sieciowego/systemu CMS, który rozumie również to kodowanie, aby uprościć wprowadzanie adresów URL przez webmasterów/edytorów treści.

2

Powiedziałbym, że nie. Powód jest prosty -> jeśli polegasz na ogólnoświatowej publiczności, byłoby dużym problemem dla ludzi do wpisania adresu URL. Mieszkam w „cyrylicy” świecie, możliwe jest stworzenie cyrylicy adresy URL, ale nikt nie uda się, bo jeszcze jesteśmy dość leniwy, aby zmienić język i przyzwyczaić się do pisania latin ...

Aktualizacja:
Nie mogę powiedzieć o alternatywach, ale czasami niektóre języki mają nieformalny lub formalny substytut listów, np. w języku niemieckim możesz napisać Ö, ale w adresie URL możesz zobaczyć OE. Możesz również wziąć pod uwagę angielskie słowa lub słowa z podobnymi dźwiękami (aby osoby z Twojego kraju mogły je zapamiętać, a inne "kraje" nie zaszkodzą:

+0

@maxym co jeśli chce, aby tylko Rosjanie zobaczyli stronę? –

+0

@ helrow: po rosyjsku można używać transliteracji ... cóż, nie mam pojęcia, jak przeliterować to słowo w języku angielskim, jego znaczenie: cyrylicy słowa pisane łacińskimi literami (lub czasem nawet liczby są używane). Wiele osób używa go tutaj tylko na czacie (strasznie się czyta, ale nie mogą tego zrobić) – Maxym

+0

Dzięki Maxym! Nie martwię się o ogólnoświatową publiczność, strona będzie dość lokalna dla danego kraju. – rkg

0

Możesz używać znaków spoza zestawu ASCI w adresie URL, ale jest to brzydkie bo Specjalna caracters muszą być zakodowane tak:.. http://www.w3schools.com/tags/ref_urlencode.asp

+1

-1. Nowoczesne przeglądarki internetowe są w stanie poradzić sobie z tym automatycznie. –

+0

@larsman: Ale niektóre współczesne przeglądarki celowo przełamują wyświetlanie znaków spoza alfabetu łacińskiego, z wyjątkiem pewnych sytuacji, w celu zwalczania ataków phishingowych ... –

1

zależy od docelowych użytkowników ... na przykład Nürnberg.de patrzy również na nuernberg.de dla wygody, aby był łatwo dostępny dla rodzimego użytkownika niemieckiego (jak niemiecka klawiatura jest domyślna i ma wszystkie 4 dodatkowe symbole klucza (öäüß) dostępne dla wszystkich użytkowników języka niemieckiego) i nie zapominaj, że jednym z celów I18N jest zapewnienie wrażenia języka ojczystego użytkownikowi końcowemu. Użytkownicy Maca i Linuksa mają jeszcze więcej inicjatywy, np. Kliknięcie Alt + U na Macu wywoła umlaut w znakach, aby poradzić sobie z wprowadzaniem I18N.

Zastanawiam się jakie są powikłania mający spoza ASCII znaki w adresie URL.

ale sposób, w jaki położył swoje pytanie, wydaje się, że sprawa jest bardziej wokół URI, rather then URL ... i starają się bezpiecznik urna z znaków spoza ASCII wewnątrz URI. nie ma w tym żadnych komplikacji, jeśli wiesz, gdzie i jak analizować URN na serwerze (for example: in case of Django based server, the URN can be parsed and handled using regex inside url.py) .. wszystko, co musisz wziąć pod uwagę, to to, że przy ewolucji web2.0 (opartej na javascript) wszystko działa głównie w utf -8, ponieważ specyfikacja Javascript wymaga kodowania utf-8. I tak utf-8 ewoluuje w pewien rodzaj standardu. Trzymaj się specyfikacji kodowania UTF-8, a nie będziesz musiał stawić czoła komplikacjom w analizie URI i pracy nad nim.

na przykład. sprawdź URI http://de.wikipedia.org/wiki/Fürth lub http://hi.wikipedia.org/wiki/जर्मनी .. niezależnie od kodowania zapisanego w pasku adresu, przeglądarka przetłumaczy go na UTF-8 i wyśle ​​na serwer.

UWAGA: obok UTF-8, istnieją pewne symbole, które są kodowane przy użyciu kodowania procentowy .. więcej na temat można znaleźć tutaj ...

http://en.wikipedia.org/wiki/Percent-encoding

+1

To wstyd, że składnia SO nie obsługuje identyfikatorów URI i18n :) –

+0

LOL, bardzo true;) –

+0

@PM: Dziękuję! Świetna odpowiedź. – rkg

Powiązane problemy