Акценты, URL и Firefox - PullRequest
       9

Акценты, URL и Firefox

3 голосов
/ 14 декабря 2010

У меня возникли некоторые проблемы, и мне было интересно, может ли кто-нибудь из вас помочь мне.

У меня есть сайт и база данных, настроенные на utf8.У меня проблема, когда я набираю акценты в секции строк запроса ã превращается в % E3 , но если я использую ссылки или формы на странице, это дает % C3%A3 в URL.

Что я могу сделать?

РЕДАКТИРОВАТЬ: Позвольте мне немного уточнить это:

I 'Я пытаюсь использовать акцентированные символы в моих URL (строки запроса), но мне тяжело заставить это работать в разных браузерах.Некоторые браузеры, такие как Firefox и IE, выводят различную процентную строку в зависимости от того, использую ли я форму на странице или набираю акцентированный символ в адресной строке.Как я уже говорил в своем первоначальном вопросе, ã , введенный в форму, превращается в % C3% A3 в URL, но если я наберу ã в адресной строке,браузер меняет это значение на % E3 в URL.

Это усложняет для меня вещи, потому что если я получу % E3 , то в php / html я получу неизвестноесимвол (это алмазный знак вопроса, верно?)

Надеюсь, это поможет - дайте мне знать иначе.

1 Ответ

6 голосов
/ 14 декабря 2010

ã, введенный в форму, превращается в% C3% A3 в URL-адресе

Зависит от кодировки формы, которая обычно берется из кодировки страницы, содержащей форму. %C3%A9 - это правильная форма в кодировке UTF-8 URL-адреса ã.

если я наберу ã в адресной строке, браузер изменит это значение на% E3 в URL.

Это зависит от браузера. Когда вы помещаете не-ASCII символы в URL в строке адреса:

http://www.example.com/test.p/café?café

Браузеры WebKit кодируют их как UTF-8:

http://www.example.com/test.p/caf%C3%A9?caf%C3%A9

, что является наиболее правильным ИМО, согласно IRI . Однако IE и Opera по историческим причинам используют системную кодировку ОС по умолчанию для кодирования текста, введенного только в строку запроса. Таким образом, при установке Windows в Западной Европе (с использованием кодовой страницы 1252) вы получите:

http://www.example.com/test.p/caf%C3%A9?caf%E9

Для символов, которые недоступны в кодировке системы, IE и Opera заменяют их на ?. Firefox будет использовать системную кодировку, когда все символы в строке запроса, или UTF-8 в противном случае.

Ужасно и непоследовательно, но тогда пользователи редко вводят строки запроса вручную.

...