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

问题描述

我正在制作一个以德语为主要语言的测验网站。 在 PHP 中,当我计算此文本 => "(ä,ö,ü and ß)" 时,它返回总共 19 个字符,但在 Javascript 中(在浏览器中)它计数为 15。

//- PHP
strlen("(ä,ü and ß)"); // - returns 19
//- JS
"(ä,ü and ß)".length; //- return 15

我需要让它们相等。有可能吗?

解决方法

我如何在评论中写入 () 将返回字节数,而您可以使用 strlen 如下:

mb_strlen

链接:

,

使用 TextEncoder Javascript native API 将字符串从 UTF-16 格式转换为 UTF-8 格式,然后以字节为单位获取长度。

var encodedText = new TextEncoder().encode("(ä,ö,ü and ß)");
console.log(encodedText.length);

请注意它在 IE 中不起作用。参考TextEncoder