Помогал кому-то в приложении с помощью jQuery UI datepicker, а при тестировании в разных браузерах мы заметили проблему в IE 11, по крайней мере, в нашей версии. По какой-то причине строка даты, которую я кормила datepicker для нового объекта даты javascript, не играла хорошо в IE, но отлично работала в Chrome. Наконец, спустя более часа после перезапуска отладчиков и в главной роли на экране, я начал немного подходить к самой строке. Конечно, я мог ударить по клавишам со стрелками в некоторых положениях, и курсор не двигался! Ах Ха! Там где-то были некоторые непечатаемые символы.Каковы эти шестнадцатеричные символы и откуда они взялись?
Я захватил плагин редактора Hex для Notepad ++ и могу сравнить строку «un-molested» и версию с «лишним чем-то» внутри нее.
См. Скриншоты ниже.
Значит, кто-нибудь может прокомментировать, какие именно персонажи они есть и откуда они пришли?
Вот "бестолковый" версия. Обратите внимание, что когда я смотрю «отображаемую» версию в текстовом редакторе, все, что я вижу, это «10/14/2016»
Вот код, в котором я работаю. Внутри этой функции переменная «DateStart» содержит дополнительные символы. Обратите внимание, что это происходит при отладке с помощью IE и Visual Studio 2015. Теперь, когда я запускаю с Google Chrome и использую его отладчик, я получаю ожидаемые результаты - дата прекрасная, а datepicker открывается до нужной даты.
function ConfigPicker() {
var DateStart = document.getElementById('FromDate').value;
var DateEnd = document.getElementById('ToDate').value;
$("#FromDate").datepicker({ dateFormat: 'mm/dd/yy', defaultDate: new Date(DateStart) });
$("#ToDate").datepicker({ dateFormat: 'mm/dd/yy', defaultDate: new Date(DateEnd) });
}
Это звучит как проблема с кодировкой в запросе. «E2 80 8e» - это своего рода спецификация. Было бы гораздо полезнее, если бы вы показали код, где были помещены символы, или код на стороне сервера, который их получил –