3

可能重复:
如何检测字符串中的非 ASCII 字符?

我有一个表示 US-ASCII 音译表的数组,就像这个: http://www.geopostcodes.com/encoding#az

如果字符串具有这些字符之一,那么我将其替换为 ASCII 对应字符(带有strtr)。

因为数组很大,我希望将它加载到一个变量中,并且仅当字符串包含这些类型的 UTF-8 字符时才音译字符串。

有没有一种相当快速的方法来找出这个问题?

4

1 回答 1

3

没有真正的方法可以做到这一点。但是,如果您不需要任何高于 ASCII 127 的代码点(因此没有像 éáÿ 这样的“扩展 ASCII”),您可以检查是否有任何字节设置了第一位:

for (var i = 0; i < text.length; i++)
    if (ord(text[i]) > 127)
        // Unicode/UTF-8 character!
于 2012-08-11T21:50:27.543 回答