ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptで実装されたGBK、UTF8文字列実長計算機能_基礎知識

JavaScriptで実装されたGBK、UTF8文字列実長計算機能_基礎知識

WBOY
リリース: 2016-05-16 16:38:33
オリジナル
2058 人が閲覧しました

ご存知のとおり、JS の文字列の長さは中国語と英語の文字を区別しません。これは、PHP の strlen() 関数とは異なります。 PHP の strlen() 関数は、文字セットに従って、GBK 中国語文字を 2 つずつ、UTF-8 中国語文字を 3 つずつ蓄積します。

子供用の靴の中には、なぜ実際の長さを計算する必要があるのか​​と疑問に思う人もいるかもしれません。

主にデータベースの長さの範囲に一致させるためです。たとえば、GBK のデータベースのフィールドは varchar(10) であり、これは 5 文字の長さに相当し、1 つの中国語文字は 2 文字の長さに相当します。 。 UTF8 データベースの場合、各漢字の長さは 3 です。

上記の原則を理解した後、GBK 文字セットの場合は、中国語の文字が見つかった場合に 2 を加算し、UTF8 文字セットの場合は、中国語の文字が見つかった場合に 3 を加算します。 🎜>
GBK長さ計算関数:

コードをコピーします コードは次のとおりです:
// GBK 文字セットの実際の長さの計算
関数 getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode realLength = 1;
}その他{
// 中国語の場合は長さに 2 を加えます
realLength = 2;
}
}
realLength を返します;
}


UTF8の長さ計算関数:
コードをコピーします コードは次のとおりです:
// UTF8 文字セットの実際の長さの計算
関数 getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode realLength = 1;
}その他{
// 中国語の場合は、長さに 3 を加えます
realLength = 3;
}
}
realLength を返します;
}

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