【问题标题】:how can I deal with unicode in PHP without mbstring extension如何在没有 mbstring 扩展的 PHP 中处理 unicode
【发布时间】:2009-12-13 20:03:44
【问题描述】:

我正在使用共享托管服务来托管我的网站,因此我无法直接访问 PHP 配置或安装任何扩展。所以我的问题是标准 PHP 字符串函数无法处理的 utf-8 字符串,因为我没有在服务器上安装 mbstring 扩展。我正在寻找另一种处理 unicode 字符串的方法,非常感谢任何帮助或指导,或者如果您知道任何在线资源,请与我分享。

【问题讨论】:

  • 这是一个好兆头,您应该找到更好的主机
  • 同意。虽然您不应该期望您的主机安装您要求的任何扩展,但如今 mbstring 应该被视为标准。如果你的主人不允许,你真的,真的应该再找一个。
  • 我们已经付款,在任何情况下都没有现金返还政策。
  • 如果您花费(浪费)的时间解决这个问题的价值低于您支付的钱,那就去做吧。否则,切换主机。

标签: php string unicode utf-8


【解决方案1】:

Sourceforge 上有 PHP UTF-8 库 - 可能足以满足您的需求。此外,preg_* 函数通常独立于mbstring 接受/u 修饰符。

从长远来看,我同意是时候开始四处寻找更新的主机了。今天,Mbstring 几乎是基本必需品,缺少此功能的主机必须询问可能还缺少什么。

【讨论】:

    【解决方案2】:

    如果你别无选择,只能坚持使用这个主机,并且你不能扭曲他们的手臂来提供 mbstring(来吧,没有 mbstring 的 php 就像,sooo 1999[*])那么你可以使用intl pecl extension?再加上你可以用 PCRE 和 iconv 做的事情就足够了。

    除了格式化程序和方便的整理器之外,intl 还具有以下字素功能:

    • grapheme_extract — 函数 提取默认序列 来自文本缓冲区的字素簇, 必须用 UTF-8 编码。

    • grapheme_stripos — 查找位置(在 首次出现的字素单位) 不区分大小写的字符串

    • grapheme_stristr — 返回部分 从第一个干草堆字符串 发生不区分大小写的针 到干草堆的尽头。

    • grapheme_strlen — 获取字符串长度 以字素为单位

    • grapheme_strpos — 查找位置(在 首次出现的字素单位) 一个字符串

    • grapheme_strripos — 查找位置(在 字素单位)的最后一次出现 不区分大小写的字符串

    • grapheme_strrpos — 查找位置(在 字素单位)的最后一次出现 一个字符串

    • grapheme_strstr — 返回部分 从第一个干草堆字符串 针尾发生 干草堆。

    • grapheme_substr — 返回 a 的一部分 字符串

    [*] 为 teenspeak 道歉

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 2010-12-22
      • 2020-11-19
      • 2015-01-29
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2015-04-28
      • 2016-11-05
      相关资源
      最近更新 更多