2013-04-04 3 views
0

Я пытаюсь HTML-кодировать строку с jQuery, но я не могу найти правильный формат кодировки.HTML Encode String

У меня есть строка, такая как Ütest.docx. Сервер не обрабатывает специальные символы очень хорошо, поэтому я получаю FileNotFoundException с Java (у меня нет возможности редактировать сам сервер).

Теперь я попытался и выяснил, что URL-адрес работает, когда я заменяю Ü на% DC. Теперь, когда я это называю HTML Encoding, немного искал язык, но всегда получаю результаты, говорящие о кодировании URL. Я проверил это, и похоже, что это неправильная кодировка, потому что Ü кодируется в% C3% 9C, что не работает для сервера.

Теперь, какое кодирование оно кодирует Ü на% DC? И есть функция в javascript или jQuery, которая была бы для кодирования для меня?

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

+0

Вы ищете 'escape (" string ")' 'unescape (" escapedString ")' http://jsfiddle.net/J5DxR/ –

+0

@Bondye В то время как в jsfiddle escape работает правильно, на моей странице он все еще попадает закодировано до% C3% 9C – Ahatius

+0

@Ahatius, если вы используете обычную форму submit, то вы не можете повлиять на нее с помощью javascript. Если вы делаете запрос с помощью ajax, вы можете и он должен работать. – Esailija

ответ

1

Они оба кодируют URL, только что UTF-8 является более новым стандартом.

Если вы используете Tomcat, вы можете использовать только encodeURIComponent(), который использует UTF-8 и работает, когда вы установите атрибут Tomcat разъем URIEncoding к <connector URIEncoding="UTF-8" ...>

Если это не нормально, вы можете использовать это:

function uriEncodeLegacy(str) { 
    return escape(str.replace(/[\u0100-\uFFFF]/g, "")); 
} 

uriEncodeLegacy("Ü") //%DC 

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

+0

Это сервер Tomcat, работающий позади. Где бы я отредактировал разъем? web.xml? – Ahatius

+0

@Ahatius Это не настройка приложения, а параметр сервера, найденный в 'server.xml'. Найдите ваш коннектор (по умолчанию - с портом = 8080) – Esailija

+0

К сожалению, похоже, что server.xml (это приложение Java, использующее tomcat). – Ahatius