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 に答える