php - 我有一个带有 "\u00a0"的字符串,我需要用 ""替换它 str_replace 失败

标签 php encoding str-replace

我需要清理来自各种 Microsoft Office 套件应用程序(ExcelAccessWord)的字符串(复制/粘贴),每个应用程序都有自己的一组编码。

我将 json_encode 用于调试目的,以便能够查看每个编码的字符。

我可以用 str_replace 清理我目前找到的所有东西 (\r\n),但是用\u00a0 我没有运气。

$string = 'mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com'; //this is the output from json_encode

$clean = str_replace("\u00a0", "",$string);

返回:

mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com

完全一样;它完全忽略了\u00a0。

有没有办法解决这个问题?另外,我觉得我在重新发明轮子,是否有一个函数/类可以完全去除每一种可能的编码的每一个可能的字符?

____编辑____

在前两个回复之后,我需要澄清我的示例确实有效,因为它是 json_encode 的输出,而不是实际的字符串!

最佳答案

通过在包含\u00a0 的字符串上结合使用 ord()substr(),我发现以下诅咒起作用了:

$text = str_replace( chr( 194 ) . chr( 160 ), ' ', $text );

关于php - 我有一个带有 "\u00a0"的字符串,我需要用 ""替换它 str_replace 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592502/

相关文章:

java - PHP 的 print_r 函数在 Java 中的等价物是什么?

php - SendGrid 独特的参数与个人电子邮件

PHP/用对应的非拉丁字符替换

php - 如何设置应用程序,使其在内存中具有持久进程,并且无需重新初始化即可运行?

java - 使用 JavaMail 阅读电子邮件内容时出现编码问题

java - 无法通过 JAVA API 将带有 iso 编码的 xml 写入 Marklogic

java - 如何检测非法的 UTF-8 字节序列以在 java 输入流中替换它们?

javascript - 使用 javascript 添加到当前字符串

php - 从其标签中删除所有图像拍摄选项(alt、class、样式等)

php - 使用名字和姓氏创建唯一的 8 字符用户 ID,比较 MySQL 表中的现有用户 ID,在唯一时插入