У меня проблемы с кириллическими URL на моем сайте.Ну, я меняю свои URL-адреса с помощью Javascript (jQuery), и кириллические символы отлично работают в любом браузере, а не в Google Chrome, где отображается тринадцать юникодов.Я думал, что URL-адреса не были декодированы, поэтому я попробовал одну функцию Javascript, чтобы декодировать их в нормальный формат, но ничего не изменилось.Так есть какие-нибудь идеи, как решить эту проблему?
Мой URL выглядит примерно так:
http://site.com/index.html#начало
Но в GC показано так:
http://site.com/index.html#%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE
Любая помощь
Google Chrome всегда кодирует его URL-адреса, но это не позволяет ему ускользнуть. Попробуйте это: COPY URL extension Вы можете открыть исходный код и посмотреть, как он работает.
Попробуйте использовать такие функции, как rawurlencode () и rawurldecode () .
Пример:
$url = "http://site.com/index.html"; $url_suffix = "#начало"; $url_enc = $url . rawurlencode($url_suffix); echo "$url_enc<br />"; $url_dec = rawurldecode($url_enc); echo "$url_dec<br />";
Вывод (в браузере):
http://site.com/index.html%23%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE http://site.com/index.html#начало
rawurlencode () и rawurldecode () безопасны, если вы попытаетесь отправить параметр, такой как адрес электронной почты, используя GET (urlencode () и urldecode () не).
Также настройте свою страницу meta вот так
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
В Chrome у меня работает то, что при получении URL-адреса используется decodeURIComponent (встроенная функция).Примерно так:
decodeURIComponent (window.location.href)
Переход к закодированному URL будет работать только тогда.
Это не только Chrome, если вы вставите свой URl напрямую (или как закладку ...) в IE8, это также может вызвать проблемы.
URL (по спецификации) не может содержать кириллицу. Мы привыкли иметь их, но избавились от них, слишком много проблем.
см. Также: URL с кириллической строкой запросов, не работающей в IE (но работающей в Firefox)