PHP iconv_strlen() 含义问题

标签 php iconv

我想知道下面这句话对我们这些傻瓜来说是什么意思?

什么是字节序列?一个字节有多少个字符?

iconv_strlen() 根据指定字符集统计给定字节序列 str 中字符出现的次数,其结果不一定与字符串的字节长度相同。

最佳答案

让我们以日语字符“こ”为例。假设采用 UTF-8 编码,这是一个 3 字节字符 (0xE3 0x81 0x93)。让我们看看当我们使用 strlen 时会发生什么:

$ php -r 'echo strlen("こ") . "\n";'
3

结果是 3,因为 strlen 正在计算字节数。但是,根据 UTF-8 编码,这只是单个字符。这就是 iconv_strlen 的用武之地。它知道在 UTF-8 中,这是单个字符,即使它由 3 个字节组成。因此,如果我们尝试这样做:

$ php -r 'echo iconv_strlen("こ", "UTF-8") . "\n";'
1

我们得到 1。这就是该解释的意思。

关于PHP iconv_strlen() 含义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086046/

相关文章:

php - preg_match 只有 4 位数字

php 仅在受 shibboleth 保护的目录中不被解释

php - Yii 多页面表单向导最佳实践

php - 使用 .replaceWith() 后未提交某些表单值

php - iconv_strlen函数导致执行超时,在MAMP上运行

c - 为什么 iconv 函数需要一个非常量输入缓冲区?

php - 如何在 PHP 代码中调用 __autoload()

ruby-on-rails - Iconv.convert 返回值的顺序是否错误?

mysql - 将数据从 latin1 更改为 utf8

php - 如何在 fpdf 中显示阿拉伯文本?