【问题标题】:What are these hex characters and where could they have come from?这些十六进制字符是什么,它们可能来自哪里?
【发布时间】:2017-01-09 09:35:45
【问题描述】:

在使用 jQuery UI 日期选择器帮助某人开发应用程序时,在不同的浏览器中进行测试时,我们注意到 IE 11 中的一个问题,至少我们的版本是这样。出于某种原因,我为新的 javascript 日期对象提供给 datepicker 的日期字符串在 IE 中表现不佳,但在 Chrome 中运行良好。 最后,在重新启动调试器并盯着屏幕一个多小时后,我开始仔细观察字符串本身。果然,我可以在某些位置按箭头键,光标不会移动!啊哈!那里有一些非打印字符。

我获取了 Notepad++ 的 Hex 编辑器插件,可以将“un-molested”字符串和版本与其中的“extra something”进行比较。

请看下面的截图。

那么任何人都可以评论这些到底是什么类型的角色以及它们可能来自哪里?

这里是“未骚扰”版本

这是“愚蠢”的版本。请注意,当我在文本编辑器中查看“显示”版本时,我看到的只是“10/14/2016”

这是我正在使用的代码。在此函数中,变量“DateStart”中包含额外的字符。请注意,在使用 IE 和 Visual Studio 2015 进行调试时会发生这种情况。现在,当我使用 Google Chrome 启动并使用其调试器时,我得到了预期的结果 - 日期很好,并且日期选择器打开到正确的日期。

 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 似乎是某种 BOM。如果您显示放置字符的代码或接收它们的服务器端代码会更有帮助

标签: jquery jquery-ui hex notepad++ hex-editors


【解决方案1】:

您必须从处理从右到左文本的来源复制它。

e2 80 8e200E LEFT-TO-RIGHT MARK

您可以通过将这些十六进制代码粘贴到UTF-8 code units 字段并点击转换来轻松查看。

请参阅UniView 处的符号说明。

【讨论】:

    猜你喜欢
    • 2012-05-30
    • 2019-07-30
    • 2010-09-07
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2011-11-11
    相关资源
    最近更新 更多