PHP和JavaScript中的德语字符计数错误



我正在制作一个以德语为主要语言的智力竞赛网站。在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

最新更新