相关疑难解决方法(0)

decodeURIComponent vs unescape,unescape出了什么问题?

在回答另一个问题时,我意识到我的Javascript/DOM知识已经变得有点过时,因为我仍在使用escape/ unescape编码URL组件的内容,而看起来我现在应该使用encodeURIComponent/ decodeURIComponent代替.

我想知道的是什么错escape/ unescape?有一些模糊的建议,围绕Unicode字符存在某种问题,但我找不到任何明确的解释.

我的网络体验相当有偏见,几乎所有这些都是编写与Internet Explorer绑定的大型Intranet应用程序.这涉及到大量使用escape/ unescape并且所涉及的应用程序已经完全支持Unicode多年了.

那么escape/ unescape应该有什么Unicode问题呢?有没有人有任何测试用例来证明这些问题?

javascript encoding dhtml escaping

49
推荐指数
4
解决办法
5万
查看次数

如何确定 JavaScript 中的一组字符是否为 UTF-8?

这是以前提出的问题的一种变体,但我仍然无法找到答案,所以我试图将其提炼到问题的核心,希望有一个解决方案。

我有一个数据库,由于历史原因,其中的某些文本条目不是 UTF-8。大多数是。过去 3 年的所有条目都是。但一些较旧的条目不是。

找到非 UTF-8 字符很重要,因此我可以避免它们或将它们转换为 UTF-8 以用于我尝试生成的某些 XML。

我使用的服务器端 JavaScript 具有 ByteBuffer 类型,因此我可以将任何字符集视为单个字节并根据需要检查它们,并且不需要使用 String 类型,我理解在这种情况下这是有问题的。

在这种情况下,是否有任何文本检查可以确定它是否是有效的 UTF-8?

我已经搜索了几个月 (;_;) 并且仍然无法找到答案。然而,必须有办法做到这一点,因为 XML 验证器(如在主要浏览器中)能够在遇到非 UTF-8 字符时报告“编码错误”。

我只想知道有关如何完成的任何算法,以便我可以尝试在 JavaScript 中进行相同类型的测试。一旦我知道哪些字符不好,我就可以将它们从 ISO-8859-1(例如)转换为 UTF-8。我有这方面的方法。

我只是不知道如何找出哪些字符不是 UTF-8。同样,我知道在这种情况下使用 JavaScript String 类型是有问题的,但我确实有一个替代的 ByteBuffer 类型,它可以按字节处理字符。

感谢人们可以建议的任何特定测试。

道格

javascript utf-8 character-encoding

5
推荐指数
1
解决办法
4031
查看次数