chunk_split() 破坏多字节字符

2023-12-20

当我使用chunk_split()函数,它破坏了我的重音字符和特殊字符。我该如何纠正这个问题?

这是我的 PHP 代码。

if(count($text) > 0) {
    $text = implode(' ', $text);
    echo chunk_split($text, 8, '<br />'); 
}

被破坏的重音字符。

&a
mp; Post
er ÀÁ�
�ÃÄÅ�
�áâã�
�åÒÓ�
�ÕÖØ�
�óôõ�
�øÈÉ�
�Ëéè�
�ëÇç�
�ÍÎÏ�
�íîï�
�ÚÛÜ�
�úûü�
�Ññ 

chunk_split 不是多字节安全的,并且没有本机 mb_chunk_split。

http://php.net/manual/en/function.chunk-split.php http://php.net/manual/en/function.chunk-split.php

这是 php 文档中评论者提供的一个函数:

<?php

//from Peter from dezzignz.com 05-Apr-2010 11:30 @ php.net

function mbStringToArray ($str) {
    if (empty($str)) return false;
    $len = mb_strlen($str);
    $array = array();
    for ($i = 0; $i < $len; $i++) {
        $array[] = mb_substr($str, $i, 1);
    }
    return $array;
}

function mb_chunk_split($str, $len, $glue) {
    if (empty($str)) return false;
    $array = mbStringToArray ($str);
    $n = 0;
    $new = '';
    foreach ($array as $char) {
        if ($n < $len) $new .= $char;
        elseif ($n == $len) {
            $new .= $glue . $char;
            $n = 0;
        }
        $n++;
    }
    return $new;
}

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

chunk_split() 破坏多字节字符 的相关文章

随机推荐

  • sapply 与复合函数的速度比较

    gt system time sapply rnorm 1000000 0 1 function x round x 2 user system elapsed 2 78 0 11 2 89 gt system time round rno
  • cref 不在对象浏览器中创建链接

    我在 C 2010 类库中有以下代码
  • 如何在css中定义多个类的hover事件?

    在CSS中 如何定义多个类的悬停事件以使用相同的属性 这似乎不起作用 my div hover my td hover border 1px solid red Thanks 您应该用逗号分隔 如下所示 my div hover my td
  • 以编程方式更改 ActionBar 选项卡下划线颜色

    我已经创建了操作栏 ActionBar actionbar getActionBar 操作栏的背景更改为 actionbar setBackgroundDrawable actionBarBackgroundImage 现在我需要以编程方式
  • Python,日志记录:使用带有字典配置的自定义处理程序?

    这是关于 Python 3 2 GNU Linux x86 64 上的日志记录模块 是否可以使用字典配置设置自定义处理程序 这是我正在尝试的代码 import logging import logging config class Cust
  • Android:首选项屏幕从右到左

    这是PreferenceScreen的xml文件 PreferenceCategory 根据我的需要显示为 RTL 但其他组件显示为 LTR 如何让他们RTL 我必须遵循这个link http android developers blog
  • 从 pyodbc 调用过程时出错

    这是我的第一个问题 所以 如果重复或格式错误 我很抱歉 我搜索了其他问题 发现该错误很常见 但出现在多种情况下 我有一个非常简单的 python 代码 我想在 MSSQL 中从 pyodbc 执行一个过程 import pyodbc con
  • tkinter 显示当前标签,删除前一个[重复]

    这个问题在这里已经有答案了 我正在尝试一个程序 它将显示在输入框中输入的相应名称的标签 问题 它重叠并显示标签 而不是消失以前的条目标签 我的编码 import Tkinter as tki class App object def ini
  • Backbone.js Underscore.js 过滤集合与数组

    我基本上正在尝试解决这个问题 但是使用数组并使用相应数组的值返回所有对象 而不仅仅是值 按属性值过滤骨干集合 https stackoverflow com questions 11762105 filter backbone collec
  • 推荐的元元素?

    为我的网站项目建立一个 基本框架 我想知道哪些元元素是真正必要 推荐的 我特别想知道如何处理语言属性 在下面的例子中 我认为 不必要地重复
  • gradle 构建因未知主机异常而失败

    我刚刚安装了新版本的 Android Studio 并尝试使用内置模板创建一个项目 我的环境是 Windows 7 SP1 64 位 在安全域环境中 我是我的计算机上的域管理员 这是我所看到的 C Users stuz AndroidStu
  • 术语“更新数据库”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查[重复]

    这个问题在这里已经有答案了 我正在使用 VS 2015 Community Update 3 当我尝试使用命令重新创建 EF 驱动的数据库时update database在包管理器控制台中 显示错误 术语 更新数据库 不被识别为 cmdle
  • sequelize postgres 将 fn 'date' 与 jsonb 值结合起来

    我需要比较格式字符串MM DD YYYY与postgres中的另一个使用sequelize在jsonb列上 在常规专栏上我会做类似的事情 sequelize where sequelize fn date sequelize col cre
  • 将元组列表作为参数传递给 scala 中的 Spark udf

    我正在尝试将元组列表传递给 scala 中的 udf 我不确定如何为此准确定义数据类型 我试图将其作为整行传递 但它无法真正解决它 我需要根据元组的第一个元素对列表进行排序 然后发回 n 个元素 我已经尝试过以下 udf 定义 def ud
  • Parse.com 推送通知未在 Android 后台显示

    我将 Parse com 与 Ionic 应用程序和 PushPlugin 结合使用 并尝试使用自定义发件人 ID 通过 GCM 实现 Parse 的推送通知 当我向所有设备发送消息或使用带有 cURL 的 REST API 时 当应用程序
  • 如何改变这种设计以避免沮丧?

    假设我有一个全部继承自基类的对象集合 就像是 abstract public class Animal public class Dog Animal class Monkey Animal 现在 我们需要喂养这些动物 但不让它们知道如何喂
  • 十进制转 JSON [重复]

    这个问题在这里已经有答案了 我正在从数据库中提取一个十进制值的总和 我正在尝试在 JSON 结果中使用该值 json dumps sum amount where amount is my Decimal Django 无法序列化Decim
  • Boost.Python python链接错误

    我正在运行带有最新 Boost 发行版 1 55 0 的 Mac OS X 10 8 4 Darwin 12 4 0 我正在按照说明进行操作here http www boost org doc libs 1 55 0 libs pytho
  • Office 加载项开发 - 格式错误的 GET URL (_host_Info=...)

    我目前正在使用 Microsoft 提供的 JavaScript 界面开发 MS Word Office Addin 我使用 Django 后端进行了测试实现 一切正常 然而 对于最终产品 我必须将功能与在多种配置中运行的现有 Java 后
  • chunk_split() 破坏多字节字符

    当我使用chunk split 函数 它破坏了我的重音字符和特殊字符 我该如何纠正这个问题 这是我的 PHP 代码 if count text gt 0 text implode text echo chunk split text 8 b