JavaScript を使用して、文字列を UTF-8 に格納することによって占有されるバイト数を計算する_javascript スキル

WBOY
リリース: 2016-05-16 17:26:22
オリジナル
1771 人が閲覧しました

最近JavaScriptで苦労しています。

データベースの文字セットは UTF-8 です。ページで JavaScript を使用して、入力テキストが UTF-8 で保存されたときにそのバイト長を占めることを確認する必要があります。 JavaScript の String オブジェクトには length 属性がありますが、この計算はバイト数ではなく文字数です (この問題は常に何度も起こります。Delphi で遊んでいたとき、プログラムを書かなければならなかったのを覚えています) Delphi の文字列の長さはバイト数であるため、文字列内の文字数を計算します...)。怠惰な方法は、検証コードの最大長をデータベースの対応するフィールドの長さの 1/3 に設定することですが、これは正確に言うと少し不適切です。

そこで、JavaScript で UTF-8 に格納されている String のバイト数を確認する方法を見つけたいと思います。Unicode の導入に関する多くのドキュメントを見つけました。最も重要なことは、それに対応するストレージの長さです。文字エンコード値:

UCS-2 エンコード (16 進数) UTF-8 バイト ストリーム (バイナリ)
0000 - 007F 0xxxxxxx (1 バイト)
0080 - 07FF 110xxxxx 10xxxxxx (2 バイト)
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx (3 バイト)

コードは次のようになります:
[

コードをコピー コードは次のとおりです。

function mbStringLength(s) {
var totalLength = 0;
var charCode; 0; i charCode = s.charCodeAt(i);
totalLength =
} (0x0080 totalLength = 2;
} else if ((0x0800 totalLength = 3;
}
}
//alert(totalLength);
return totalLength;


実際には、0x0080 から 0x07ff までの文字実際にはほとんど使用されません。ユーザー入力で使用されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート