ดังที่เราทุกคนรู้ใน JS ความยาวของสตริงจะไม่แบ่งออกเป็นตัวละครจีนและภาษาอังกฤษและตัวละครแต่ละตัวจะถูกนับเป็นความยาวซึ่งแตกต่างจากฟังก์ชัน Strlen () ใน PHP ฟังก์ชั่น Strlen () ใน PHP สะสมตัวอักษรจีน 2 ตัวใน GBK ตามชุดอักขระและสะสมอักขระจีน 3 ตัวใน UTF-8
รองเท้าเด็กบางคนอาจถามว่าทำไมคุณต้องคำนวณความยาวจริง?
ส่วนใหญ่จะตรงกับช่วงความยาวของฐานข้อมูล ตัวอย่างเช่นฟิลด์บางอย่างในฐานข้อมูล GBK คือ Varchar (10) ซึ่งเทียบเท่ากับความยาวของ 5 ตัวอักษรจีนและตัวละครจีนหนึ่งตัวเท่ากับความยาวของตัวอักษรสองตัว หากเป็นฐานข้อมูล UTF8 อักขระจีนแต่ละตัวมีความยาว 3
หลังจากทราบหลักการข้างต้นเราสามารถคำนวณความยาวที่แท้จริงของสตริงได้ หากเป็นชุดอักขระ GBK ให้เพิ่ม 2 ในภาษาจีนและหากเป็นชุดอักขระ UTF8 ให้เพิ่ม 3 ในภาษาจีน
ฟังก์ชั่นการคำนวณความยาว GBK:
การคัดลอกรหัสมีดังนี้:
// คำนวณความยาวจริงของชุดอักขระ 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;
-
-
กลับมาอีกครั้ง
-