우리 모두 알다시피, JS에서 문자열의 길이는 중국어와 영어 문자로 나뉘 지 않고 각 캐릭터는 PHP의 strlen () 함수와 다른 길이로 계산됩니다. PHP의 strlen () 함수는 캐릭터 세트에 따라 GBK에서 2 개의 중국어를 축적하고 UTF-8에서 3자를 축적합니다.
일부 어린이 신발은 물어볼 수 있습니다. 왜 실제 길이를 계산해야합니까?
주로 데이터베이스의 길이 범위와 일치합니다. 예를 들어, GBK 데이터베이스의 특정 필드는 Varchar (10)이며, 중국어의 길이와 동일하며 한 문자는 두 글자의 길이와 같습니다. 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 <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
실수 += 1;
}또 다른{
// 중국인 인 경우 2 길이를 추가하십시오
실수 += 2;
}
}
RealLength를 반환하십시오.
}
UTF8 길이 계산 기능 :
코드 사본은 다음과 같습니다.
// UTF8 문자 세트의 실제 길이 계산
함수 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) {
실수 += 1;
}또 다른{
// 중국인 인 경우 3 길이를 추가하십시오
실수 += 3;
}
}
RealLength를 반환하십시오.
}