在IE 11中,使用ToLocaleDateString()时我得到了一些奇怪的结果。在浏览器中返回的字符串看起来很好,例如“1/28/2014 11:00:46 AM”,但是如果我将该值复制并粘贴到纯文本编辑器中,它看起来像这样:“?1?/?28?/?2014 ?11?:?00?:?46? ?AM”。有趣的是,如果我将文本粘贴到Microsoft产品中,它看起来很好......问题在于,如果您尝试以编程方式使用该值创建日期,则无效。您可以通过在IE11中打开控制台,对其使用ToLocaleDateString(),然后尝试使用生成的字符串在javascript或所选语言(我在此处使用ASP.NET...)中创建新日期来测试此功能。
我做错了什么,或者是否应该以其他方式与javascript日期进行交互?如何摆脱那些奇怪的符号?
编辑:由于下面的评论,我能够弄清楚未显示字符是从左到右的标记。根据我将值粘贴到的编辑器和编辑器设置要使用的编码,文本将以不同的方式显示:有时带有“?”,有时没有。
我做错了什么,或者是否应该以其他方式与javascript日期进行交互?如何摆脱那些奇怪的符号?
编辑:由于下面的评论,我能够弄清楚未显示字符是从左到右的标记。根据我将值粘贴到的编辑器和编辑器设置要使用的编码,文本将以不同的方式显示:有时带有“?”,有时没有。
var str=(new Date).toLocaleDateString();for(var i=0;i<str.length;i++)console.log(i,str.charCodeAt(i),str.charAt(i))
并将结果发布在此处。 - Bergi