Heim  >  Artikel  >  Web-Frontend  >  GBK, UTF8-String-Berechnungsfunktion für die tatsächliche Länge, implementiert durch JavaScript_Grundkenntnisse

GBK, UTF8-String-Berechnungsfunktion für die tatsächliche Länge, implementiert durch JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:38:332037Durchsuche

Wie wir alle wissen, unterscheidet die Länge von Zeichenfolgen in JS nicht zwischen chinesischen und englischen Zeichen. Jedes Zeichen zählt als Länge, was sich von der Funktion strlen() in PHP unterscheidet. Die Funktion strlen() in PHP akkumuliert chinesische GBK-Zeichen um 2 und UTF-8-chinesische Zeichen um 3, je nach Zeichensatz.

Manche Kinderschuhe fragen sich vielleicht: Warum müssen wir die tatsächliche Länge berechnen?

Hauptsächlich, um dem Längenbereich der Datenbank zu entsprechen. Ein Feld in der GBK-Datenbank ist beispielsweise varchar (10), was der Länge von 5 chinesischen Zeichen entspricht, und ein chinesisches Zeichen entspricht der Länge von zwei Buchstaben . Wenn es sich um eine UTF8-Datenbank handelt, beträgt die Länge jedes chinesischen Zeichens 3.

Nachdem wir die oben genannten Prinzipien kennen, können wir die tatsächliche Länge einer Zeichenfolge berechnen. Wenn es sich um einen GBK-Zeichensatz handelt, fügen Sie 2 hinzu, wenn Sie auf chinesische Zeichen stoßen 🎜>
GBK-Längenberechnungsfunktion:

Code kopieren Der Code lautet wie folgt:
// Berechnung der tatsächlichen Länge des GBK-Zeichensatzes
Funktion getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i < len; i ){
​​​​ charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode <= 128) {
                realLength = 1;
          }sonst{
                      // Wenn es chinesisch ist, addiere 2 zur Länge
               realLength = 2;
       }
}  
Gibt realLength;
zurück }


UTF8-Längenberechnungsfunktion:
Code kopieren Der Code lautet wie folgt:
// Berechnung der tatsächlichen Länge des UTF8-Zeichensatzes
Funktion getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i < len; i ){
​​​​ charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode <= 128) {
                realLength = 1;
          }sonst{
                     // Wenn es chinesisch ist, addiere 3 zur Länge
               realLength = 3;
       }
}  
Gibt realLength;
zurück }

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn