【发布时间】:2014-01-05 12:06:13
【问题描述】:
有没有一种简单的方法来检查字符串是否是 JavaScript 中有效的 UTF-8 序列?
我真的不想以这样的正则表达式结尾:
Regex to detect invalid UTF-8 string
P.S.:我从外部 API 接收数据,有时(很少但会发生)它返回带有无效 UTF-8 序列的数据。尝试将它们放入 PostgreSQL 会导致相应的错误。
【问题讨论】:
-
我认为这没有任何意义。字符串是字符的列表。 UTF-8 是一种以二进制格式表示字符的方式。字符串本身没有编码。
-
除非您尝试确定是否可以使用 utf-8 编码完全表示字符串?
-
检查 UTF8 是否有效的唯一方法是检查它是否包含 invalid utf8 字符。您链接的正则表达式是执行检查的有效、简洁和高效的方式。当然,您可以以自定义调整的方式检查您自己的字典。
-
我不知道任何内置方法,所以上次我需要这个时,我使用
text.match(/[\x80-\xFF]+/)收集潜在问题,并根据 UTF 检查每个匹配项-8 规范——52 行代码。使用该正则表达式实际上是一种非常简洁、快速且简单的方法。 -
或者你想弄清楚一个字节序列是否可以被解释为一个 utf-8 编码的字符串?
标签: javascript utf-8