Как мы все знаем, в JS длина струны не разделена на китайские и английские символы, и каждый символ считается длиной, которая отличается от функции strlen () в PHP. Функция strlen () в PHP накапливает 2 китайских иероглифы в GBK в соответствии с набором символов и накапливает 3 китайских иероглифы в UTF-8.
Некоторая детская обувь может спросить, зачем вам рассчитывать фактическую длину?
В основном это соответствует диапазону длины базы данных. Например, определенное поле в базе данных GBK - это Varchar (10), что эквивалентно длине 5 китайских иелок, а один китайский символ равен длине двух букв. Если это база данных UTF8, каждый китайский символ имеет длину 3.
Зная приведенный выше принцип, мы можем рассчитать фактическую длину строки. Если это набор символов GBK, добавьте 2 на китайском языке, и если это набор символов UTF8, добавьте 3 в китайский.
Функция расчета длины ГБК:
Кода -копия выглядит следующим образом:
// Рассчитайте фактическую длину набора символов GBK
функция getStrleng (str) {
var Reallength = 0;
var len = str.length;
var charcode = -1;
для (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
Reallength += 1;
}еще{
// Если он китайский, добавьте 2 длины
Reallength += 2;
}
}
вернуть реальную длину;
}
Функция расчета длины UTF8:
Кода -копия выглядит следующим образом:
// Рассчитайте фактическую длину набора символов UTF8
функция getStrleng (str) {
var Reallength = 0;
var len = str.length;
var charcode = -1;
для (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
Reallength += 1;
}еще{
// Если он китайский, добавьте 3 длины
Reallength += 3;
}
}
вернуть реальную длину;
}