我正在制作一个以德语为主要语言的智力竞赛网站。在PHP中,当我计算此文本时=>quot;(ä,ö,ü和ß(";,它总共返回19个字符,但在Javascript中(在浏览器中(它计数为15。
//- PHP
strlen("(ä, ö, ü and ß)"); // - returns 19
//- JS
"(ä, ö, ü and ß)".length; //- return 15
我需要让他们平等。有可能吗?
如何在注释中写入strlen
将返回字节数,而您可以使用mb_strlen
,如:
echo mb_strlen("(ä, ö, ü and ß)", 'utf8'); // output 15
链接:
- strlen
- mb_strlen
使用TextEncoder Javascript原生API将字符串从UTF-16格式转换为UTF-8格式,然后获得字节长度。
var encodedText = new TextEncoder().encode("(ä, ö, ü and ß)");
console.log(encodedText.length);
请注意,它在IE中不起作用。请参阅TextEncoder