2016-09-01 2 views
1

Помогал кому-то в приложении с помощью jQuery UI datepicker, а при тестировании в разных браузерах мы заметили проблему в IE 11, по крайней мере, в нашей версии. По какой-то причине строка даты, которую я кормила datepicker для нового объекта даты javascript, не играла хорошо в IE, но отлично работала в Chrome. Наконец, спустя более часа после перезапуска отладчиков и в главной роли на экране, я начал немного подходить к самой строке. Конечно, я мог ударить по клавишам со стрелками в некоторых положениях, и курсор не двигался! Ах Ха! Там где-то были некоторые непечатаемые символы.Каковы эти шестнадцатеричные символы и откуда они взялись?

Я захватил плагин редактора Hex для Notepad ++ и могу сравнить строку «un-molested» и версию с «лишним чем-то» внутри нее.

См. Скриншоты ниже.

Значит, кто-нибудь может прокомментировать, какие именно персонажи они есть и откуда они пришли?

Здесь "не-приставал" версия enter image description here

Вот "бестолковый" версия. Обратите внимание, что когда я смотрю «отображаемую» версию в текстовом редакторе, все, что я вижу, это «10/14/2016» enter image description here

Вот код, в котором я работаю. Внутри этой функции переменная «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) });     
    } 
+0

Это звучит как проблема с кодировкой в ​​запросе. «E2 80 8e» - это своего рода спецификация. Было бы гораздо полезнее, если бы вы показали код, где были помещены символы, или код на стороне сервера, который их получил –

ответ

1

Возможно, вы скопировали его из источника, который имеет дело с текстом справа налево.

e2 80 8e являются 200E LEFT-TO-RIGHT MARK.

Вы можете легко увидеть, что, вставив эти шестнадцатеричные коды в поле UTF-8 code units и нажмите Convert.

См. Описание символа на UniView.