PHP和JavaScript中的德语字符计数错误
我正在制作一个以德语为主要语言的测验网站。 在PHP中,当我计算这个文本=>“(ä,ö,ü和ß)”时,它总共返回19个字符,但在Javascript(在浏览器中)中它计为15个字符PHP和JavaScript中的德语字符计数错误,javascript,php,character,utf,Javascript,Php,Character,Utf,我正在制作一个以德语为主要语言的测验网站。 在PHP中,当我计算这个文本=>“(ä,ö,ü和ß)”时,它总共返回19个字符,但在Javascript(在浏览器中)中它计为15个字符 //- PHP strlen("(ä, ö, ü and ß)"); // - returns 19 //- JS "(ä, ö, ü and ß)".length; //- return 15 我需要让他们平等。可能吗?我如何在注释中写入strlen将返回字节数,您可以使用
//- PHP
strlen("(ä, ö, ü and ß)"); // - returns 19
//- JS
"(ä, ö, ü and ß)".length; //- return 15
我需要让他们平等。可能吗?我如何在注释中写入strlen将返回字节数,您可以使用
mb\u strlen
如:
echo mb_strlen("(ä, ö, ü and ß)", 'utf8'); // output 15
链接:
var encodedText = new TextEncoder().encode("(ä, ö, ü and ß)");
console.log(encodedText.length);
请注意,它在IE中不起作用。请参阅
strlen()
返回字节数,而不是字符串中的字符数。请阅读官方指南“注意:strlen()
返回字节数而不是字符串中的字符数。”中的。那么,您想做什么?在JS中计算字节数还是在PHP中计算字符数?提示:Javascript中String对象的length属性包含字符串的长度,以UTF-16代码单位表示,strlrn
函数在PHP中返回字节数,而不是字符串中的字符数。