Como todos sabemos, no JS, o comprimento de uma corda não é dividido em caracteres chinês e inglês, e cada caractere é contado como um comprimento, que é diferente da função strlen () no PHP. A função strlen () no PHP acumula 2 caracteres chineses em GBK de acordo com o conjunto de personagens e acumula 3 caracteres chineses no UTF-8.
Os sapatos de algumas crianças podem perguntar: por que você precisa calcular o comprimento real?
É principalmente para corresponder à faixa de comprimento do banco de dados. Por exemplo, um certo campo no banco de dados de GBK é Varchar (10), que é equivalente ao comprimento de 5 caracteres chineses, e um caractere chinês é igual ao comprimento de duas letras. Se for um banco de dados UTF8, cada caractere chinês tem um comprimento de 3.
Depois de conhecer o princípio acima, podemos calcular o comprimento real de uma string. Se for um conjunto de caracteres GBK, adicione 2 em chinês e, se for um conjunto de caracteres UTF8, adicione 3 em chinês.
Função de cálculo de comprimento GBK:
A cópia do código é a seguinte:
// Calcule o comprimento real do conjunto de caracteres GBK
função gettrleng (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;
}outro{
// Se for chinês, adicione 2 comprimento
realLength += 2;
}
}
retornar real comprimento;
}
Função de cálculo de comprimento UTF8:
A cópia do código é a seguinte:
// Calcule o comprimento real do conjunto de caracteres UTF8
função gettrleng (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;
}outro{
// Se for chinês, adicione 3 comprimento
REALLENGLEMENT += 3;
}
}
retornar real comprimento;
}