【问题标题】:code for removing utf8 characters does not work on php 5.3.3删除 utf8 字符的代码在 php 5.3.3 上不起作用
【发布时间】:2019-11-13 14:04:02
【问题描述】:

我正在使用此代码:

$technical   = iconv("UTF-8", "UTF-8//IGNORE", $technical);

在 >php7 上运行良好,但在 php5.3.3 上不运行

都是一样的代码,5.3.3版本有替换方案吗?

【问题讨论】:

  • 为什么会有这么旧的版本?
  • 那是客户端-服务器,所以我需要在他的服务器上启动脚本,在我的服务器上我有 PHP 7
  • 为什么你应该在与它所在的版本相同的版本中编码^
  • 一般来说,旧版本的语言不支持新版本的所有功能。你得到什么错误信息?由于所有 Unicode 字符都可以用 UTF-8 表示,因此删除它们会留下一个空字符串。
  • 这个版本太旧了,除了升级到 PHP 7 之外,我不能良心推荐任何解决方案

标签: php utf-8


【解决方案1】:

试试这个正则表达式:

$regex = "/((?: [\x00-\x7F]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}){1,100})| ./x";
$technical = preg_replace($regex, '$1', $technical);

编辑,因为你的角色是xA0试试这个:

$technical = str_replace("\xc2\xa0",' ',$technical);

【讨论】:

  • xA0 我有这个角色
  • @jujuju 在您的问题中发布文本,没有它我无法帮助您更多
  • 粘贴这段文字是什么意思?但是我不能从编辑器中粘贴这个字符,它总是空白的?
  • @jujuju 你应该使用一个工具,用它的unicode表示或一个php函数打印每个字符,然后发布文本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2022-01-12
  • 2021-02-01
  • 2011-07-01
  • 1970-01-01
相关资源
最近更新 更多