为什么有人想要使用strlen而不是mb_strlen

时间:2015-08-08 06:35:03

标签: php utf-8

有一些遗留代码,我应该从iso-8859-2转换为UTF-8。其中一个问题是strlen功能的广泛使用。我首先想到的是,我会将strlen的所有出现都替换为mb_strlen

然而,我的一位同事说这是一个错误。我知道这两个函数之间的区别 - 如果字符串中有重音字符,strlen将返回它真正需要的字节数,而mb_strlen将返回字符数。

现在,一位同事说,也许,也许某个地方有一种情况,其中返回需要与字符串中的字节数有关,但他无法给我任何这种情况的例子。 / p>

整个代码中大约有strlen次出现,分析每一次出现都需要数天时间。

问题是 - 当某人需要字节数而不是字符串中的字符数时,有什么潜在的情结?

1 个答案:

答案 0 :(得分:6)

我想到了一些情况:

  • 将字符串存储在文件或数据库中
  • 将字符串写入套接字以通过网络发送
  • 调用需要长度(以字节为单位)的旧API或COM方法