PHP:strlen返回字符长度而不是字节长度[重复]

2023-11-26

我有一个 WordPress 网站。

我创建了简单的页面模板,例如:

<?php 
 /**
 * Template Name: Test
 */

 echo strlen('Привет');

 ?>

然后我使用这个模板创建了一个页面。该页面显示俄语字符串“Привет”(意思是“你好”)的长度。我期望看到 12,因为由 6 个字符组成的 UTF-8 编码的俄语字符串应该具有 12 个字节的大小,但我得到的是 6。

我在其他服务器上测试了同样的东西,并得到了正确的值 - 12。所以我认为原因是我的服务器配置。我有 wp 3.2.1 (升级到 wp 3.5.1 后我遇到了同样的问题)和 PHP 5.3.3。

目前我花了大约 5 天的时间试图找到解决方案,但没有运气。有谁知道这种行为的原因是什么?


检查mbstring.func_overload设置在php.ini。此选项允许 PHP 使用 mb_strlen() 覆盖 strlen() 函数(对于其他等效函数也类似)。这可以解释您的服务器之间的差异

EDIT

引用文档链接:

要使用函数重载,请将 php.ini 中的 mbstring.func_overload 设置为 一个正值,表示指定位掩码的组合 要重载的函数类别。应将其设置为 1 重载 mail() 函数。 2 用于字符串函数,4 用于常规函数 表达函数。例如设置为7,邮件,字符串 并且正则表达式函数将被重载。

所以一个值与2 bitset 意味着基本字符串函数将用其 mbstring 等效函数重载,但邮件或正则表达式函数不会重载;如果你想normal行为,这应该是 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:strlen返回字符长度而不是字节长度[重复] 的相关文章

随机推荐

  • jQuery 循环 pagerAnchorBuilder

    我正在使用 Cycle 插件在新闻旋转器中使用 这意味着我使用 Div 来填充幻灯片而不是图像 我的最终目标是制作一个寻呼机 而不是通常的 1 2 3 4 等 而是返回幻灯片中的第一个 H3 标签 我知道这可能是一个小选择问题 但这是我到目
  • 是否可以将自定义小部件添加到 QListView 中?

    我有大量日志数据 100 1000 100000 记录 我想通过以下方式将其可视化 哪个小部件 例如QListView QListWidget 我应该使用以及如何使用 以避免性能和内存问题 是否可以将自定义小部件添加到 QListView
  • 通过LTR和RTL内容的组合改变负数的方向

    这是我的 HTML 结构 div direction rtl span direction ltr div span 2 span div 这是预期结果 如你所见 符号应出现在数字的开头 我怎样才能做到这一点 Note 的方向div应该rt
  • 如何确定主语、宾语等词语?

    我正在尝试实现可以 通过将句子分成更小的部分来确定句子含义的应用程序 所以我需要知道哪些词是主语 宾语等 以便我的程序知道如何处理这个句子 这是一个开放的研究问题 您可以在维基百科上获得概述 http en wikipedia org wi
  • 如何使用 Node.js 将 Base64 编码的图像(字符串)直接上传到 Google Cloud Storage 存储桶?

    目前 我正在使用 google cloud 存储NPM 包可将文件直接上传到 Google Cloud Storage 存储桶 这需要一些技巧 因为我只有图像的 base64 编码字符串 我必须 解码字符串 将其另存为文件 将文件路径发送到
  • 我也可以通过单击其他元素来展开/折叠 JQuery ui Accordion 的内容吗?

    默认情况下 有内容标题来控制展开 折叠 但在我的情况下 我也可以通过其他元素展开 折叠内容 例如 jquery ui 手风琴代码的基本结构 div class demo div h3 a href Section 1 a h3 div p
  • 在python中按时间(TimestampType)连接两个spark数据帧

    我有两个数据帧 我想基于一列连接它们 但需要注意的是 该列是一个时间戳 并且该时间戳必须在一定的偏移量 5 秒 内才能连接记录 更具体地说 记录在dates df with date 1 3 2015 00 00 00应该加入events
  • 安装 pywin32 lib 后仍然收到错误“ImportError:没有名为 win32com.client 的模块”

    我已经从这里安装了 Python for Windows 扩展 库 http sourceforge net projects pywin32 files pywin32 但是当我在程序中导入 win32com client 时 我仍然收到
  • 与 Windows 7 兼容的最新 NodeJS [重复]

    这个问题在这里已经有答案了 我正在尝试为 Windows 7 安装 NodeJS 我尝试安装最新的 NodeJS 但它与 Windows 7 不兼容 我想知道是否有人知道可以在 Windows 7 上安装的最新版本的 NodeJS 是什么
  • 底层字符集是否仅取决于 C 实现?

    许多文本警告说 处理char整数值不可移植 例如假设 A 的值为 65 如 ASCII 所示 但是什么决定了该字符集是 ASCII 或扩展形式 还是其他字符集呢 是由操作系统决定的 还是由编译器决定的 我认为这不依赖于硬件 例如 Intel
  • C++ 向函数发送任何类型的参数

    事情是这样的 我想创建一个 void 函数 它将接收两种众所周知的值类型和另一种可以是任何类型的值 代码如下 void change settings string element short setting value switch se
  • 空感知函数调用? [复制]

    这个问题在这里已经有答案了 Dart 有一些空感知运算符 即可以执行以下操作 var obj obj foo foo is only called if obj null 这对于存储或传递给变量的函数也可能吗 通常的模式是 typedef
  • 禁用列表视图的交叉幻灯片选择

    我正在设计一个应用程序 它的中心有一个垂直平移的一维列表 用户可以通过翻转视图在列表之间水平翻转 当用户在列表视图中水平拖动时 它会选择该行 因为横向滑动 这不是我想要的行为 我最好希望 Flipview 开始左右平移 我认为这与rails
  • 允许在 Android Webview + jquery mobile 中进行远程 ajax 调用

    我正在使用 jquerymobile 开发一个 javascript HTML 应用程序 它向远程服务器发出 ajax 请求 该应用程序在 Chrome 上运行良好 仅在禁用网络安全的情况下启动 chrome 但是当我将其嵌入 Androi
  • Doctrine2 急切加载运行多个查询而不是 1 个

    我将 Symfony2 与 Doctrine2 最新版本 一起使用 并定义了此关系 ORM OneToMany targetEntity Field mappedBy event fetch EAGER ORM OrderBy name A
  • MySQL - 一组时间差的总和

    我想对所有时间差求和以显示志愿者的总工作时间 获取时间差的结果集很容易 Select timediff timeOut timeIn FROM volHours WHERE username skolcz 它给出了按小时列出的时间列表 但我
  • Python程序删除文本文件中的特定行[重复]

    这个问题在这里已经有答案了 我有一个文本文件 Thai Rectangle2 National Parks txt 其中包含以下几行 1 2 3 4 5 dy 0 5965 7 现在 我想删除该文本文件中的第 6 行 为此 我使用以下 py
  • @OrderColumn、@OneToMany 和集合的空索引列

    我正在尝试创建保留顺序的父子表 Hibernate 文档中的示例 7 8 显示了如何执行此操作 Entity public class Customer Id GeneratedValue public Integer getId retu
  • 为什么 Apache 的 RewriteRule 会泄露本地路径?

    我正在尝试使用 RewriteRules htaccess具有相对路径 但 Apache 似乎想要输出physical路径而不是server每当我尝试输出相对路径时 绝对路径和服务器根路径工作正常 例如 RewriteEngine On t
  • PHP:strlen返回字符长度而不是字节长度[重复]

    这个问题在这里已经有答案了 我有一个 WordPress 网站 我创建了简单的页面模板 例如 然后我使用这个模板创建了一个页面 该页面显示俄语字符串 意思是 你好 的长度 我期望看到 12 因为由 6 个字符组成的 UTF 8 编码的俄语字