PHP-php strlen 计算字节与字符 与 编码的问题

发布于 2016-10-25 15:53:19 字数 372 浏览 1282 评论 1

来说说我的一些观点,有错误请指出

首先一个文件只有一个编码

//例1:
//文件utf8编码下
$str = '测试123';
echo strlen($str);//9
echo mb_strlen($str,'ISO-8859-10');//9
echo mb_strlen($str);//9

//例2:
//文件gbk编码下
$str = '测试123';
echo strlen($str);//7
echo mb_strlen($str,'ISO-8859-10');//7
echo mb_strlen($str);//7

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛泛之交 2016-11-29 19:52:29

php这个语言是这样的, 字符串由字符构成, 字符即是字节:

A string is series of characters, where a character is the same as a byte. This means that PHP only supports a 256-character set, and hence does not offer native Unicode support.

ISO-8859系列编码为单字节编码, 所以你看到用这种解码似乎是字节数相符.

UTF8中, 汉字不一定是三个字节, 翻翻码表, 我记得很多生僻字是4个字节的.

mb_strlen($str)不加第二个参数, 用internal character encoding, 我的环境中默认是iso-8859-1.

每个字符串有各自对应的编码方式, 按其来做解码或求字符数就可以了.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文