gpt4 book ai didi

西里尔字符串的 Php 长度使其值加倍

转载 作者:行者123 更新时间:2023-12-04 20:34:06 24 4
gpt4 key购买 nike

你好,问题是:当我到达 $_POST 拉丁字符串 strilen() 时,它完美地工作,但是当我得到西里尔字符串 strlen() 时,它的值加倍,这里是代码:

$word = $_POST['word'];
echo strlen($word) . '<br>'; //input: abc -> returns 3, input: абв -> returns 6
var_dump($word); //input: abc -> returns string 'abc' (length=3), input: абв -> returns string 'абв' (length=6)

你有什么想法吗?!

最佳答案

strlen 不会加倍任何东西,它只是报告情况。具体来说,它报告有多少字节——而不是有多少字符——组成了字符串。那是因为 strlen 不知道什么是“字符”,并且盲目地假设 1 个字节 = 1 个字符。因此我们说“strlen 不是多字节感知的”。

在您的情况下,浏览器似乎向服务器提交了 UTF-8 编码的数据。在 UTF-8 中,西里尔字符是每个字符两个字节。

如果您想找出字符串中的字符数,请使用多字节感知 mb_strlen :

echo mb_strlen($word, 'UTF-8');

关于西里尔字符串的 Php 长度使其值加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com