Xml 中的非法字符

2023-12-25

我有一个 PHP 文件,它根据从多个来源导入的数据生成 Xml 站点地图。由于导入数据的一行中存在非法字符,我的站点地图目前格式不正确,但我正在努力将其删除。

该字符看起来代表“平方”或上标 2,并且被表示为正方形。我尝试将其粘贴到十六进制编辑器中,但它显示为“?”,并且十六进制代码也对应于“?”。我还尝试使用 iconv 从所有源编码转换为所有目标编码,没有组合删除该字符。

我还有以下函数来删除非 ASCII 字符:

function stripInvalidXml($value)
{
    $ret = "";
    $current;
    if (empty($value)) 
    {
        return $ret;
    }

    $length = strlen($value);
    for ($i=0; $i < $length; $i++)
    {
        $current = ord($value{$i});
        if (($current == 0x9) ||
            ($current == 0xA) ||
            ($current == 0xD) ||
            (($current >= 0x20) && ($current <= 0xD7FF)) ||
            (($current >= 0xE000) && ($current <= 0xFFFD)) ||
            (($current >= 0x10000) && ($current <= 0x10FFFF)))
        {
            if($current != 0x1F)
            {
                $ret .= chr($current);
            }
        }
        else
        {
            $ret .= " ";
        }
    }


    return $ret;
}

然而,这仍然没有删除它。如果我单步执行代码,非法字符将扩展到 Eclipse 调试窗口中。它有问题的字符串如下(希望它正确粘贴)

251gm-50

任何有关删除此字符并防止出现此形式的函数的想法都非常受欢迎 - 我对导入的数据几乎没有控制,因此需要在 Xml 生成时完成。

EDIT

发布后我发现该角色显示不正确。在 Eclipses 窗口中查看时,它显示为 ; (没有空格 - 如果我在其中留有空格,则会呈现字符,看起来像)


您正在尝试执行字符转码。不要自己做,使用 PHP 库。

I found iconv非常有用:

$cleanText = iconv('UTF-8','ISO-8859-1//TRANSLIT//IGNORE', $srcText);

此代码从 utf-8 转换为 iso-8859,尝试重新映射“外来”字符并忽略无法转码的字符。

我只是猜测源编码是utf-8。您必须发现传入数据正在使用哪种编码,并在 XML 标头中声明的编码中进行转换。

猜测文件编码的 Linux 命令行工具是enca

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

Xml 中的非法字符 的相关文章

  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 如何将 Filesystem 类的 glob 方法与 StorageFacade 结合使用?

    这涉及到拉拉维尔 5 我可以看到Illuminate Filesystem Filesystem一个方法叫做glob pattern flags 0 不幸的是 这个方法并没有体现在默认的情况下FilesystemAdapter随 Larav
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • xdebug_start_trace 行为异常

    我正在尝试进一步减少脚本内存使用量 我试图让我的脚本使用 xdebug 生成输出来分析内存使用情况 这是一个基于 CLI 的脚本 有 shebang usr local bin php q 我向它传递一个参数并检查它 argc gt 1 i
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 在本地托管 W3 XML 架构文件

    我在一家公司工作 我们有自己的 XML 语言 有自己的一组模式来验证W3 架构 https www w3 org 2009 01 xml xsd 出于业务原因 我需要在内部托管这些文件 而不是依赖于网络托管版本 我对 XML 模式缺乏经验
  • 如何使用 lxml 解析包含前缀但没有名称空间声明的 XML?

    我有一堆使用前缀但没有相应名称空间声明的 XML 文件 像这样的东西
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • jQuery 自动完成 - xml 跨站点请求

    我的自动完成功能的 XML 提要位于另一台服务器上 是否有客户端 javascript 方法来获取此 XML 文档 我知道我可以使用 php jsp 等创建代理 但我需要在所有客户端完成此操作 这就是我现在调用该文件的方式 该文件仅在同一域
  • WAMP 不显示目录列表中的图标

    过去 我通过 vmware 处理 PHP 代码 但最近我决定转而通过 WAMP 在 Windows 8 1 上 在本地进行处理 我创建了一个空文件夹tests in the www folder 然后在我的浏览器上输入http localh
  • 如何在 joomla 模块中通过 javascript 发送输入文件类型

    我想将带有 javascript 的文件发送到 php 文件 我的 php 文件中有这个表单
  • 使用 XML 文档部署 Web API 项目时,构建服务器上“访问被拒绝”

    为了使用 Web API 帮助页面为我的 Web API 项目生成 XML 文档 我必须检查项目属性的 构建 部分下的 XML 文档文件 选项 当我在本地构建时 这会正确生成文档 但是 当我签入时 我在构建服务器上收到以下错误 CSC 生成
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样

随机推荐

  • 如何通过环境变量添加气流池?

    就像可以通过名称后面的环境变量设置连接一样AIRFLOW CONN conn id 有没有办法设置池 这样我就可以设置一个本地 Docker 测试环境 并填充所有配置 None
  • AdMob 插页式广告已显示但无法点击

    我有一个应用程序 可以在某些活动关闭时显示插页式广告 我使用不同的活动来展示广告 到目前为止 它正确显示了广告 但当我点击广告时没有任何反应 我已经在许多设备上进行了测试 测试人员报告了相同的行为 日志中没有错误 如果我使用调试版本或上传到
  • Delphi 中图标的线程加载

    使用Delphi 2009 尝试制作一个启动器 为了使其 敏捷 我真的很想在后台线程中加载图标 我已经使用了这里找到的解决方案 能否从 Vista Shell 获取 48x48 或 64x64 图标 https stackoverflow
  • 如何将 gecko 可执行文件与 Selenium 一起使用

    我使用的是 Firefox 47 0 和 Selenium 2 53 最近 Selenium 和 Firefox 之间出现了一个 bug 导致代码无法运行 解决方案之一是使用 Marionnette 驱动程序 我按照这个指示site htt
  • 我可以使用 VS2010 PrivateObject 访问静态类中的静态字段吗?

    是否可以使用 VS2010 单元测试类 PrivateObject 访问静态类中的私有静态字段 假设我有以下课程 public static class foo private static bar 我可以使用 PrivateObject
  • Javascript 中的任务运行器

    我有一个任务列表 只有在解决每个任务的所有依赖关系后才需要执行所有这些任务 我正在努力找出一种方法来在最佳时间完成所有任务 Each node is a async job illustrated by setTimeout A and C
  • 在 Windows 环境中使用 C++ 进行 GUI 开发 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 首先请大家理解 我搜索了这个并搞乱了几个星期 我终于放弃了单独的努力 并决定向这个可爱的社区寻求帮助
  • 用于循环赛的Python程序

    我正在编写一个程序 允许用户输入甚至数量的玩家 然后它将生成循环赛时间表 n 2 n 1游戏数量 以便每个玩家都与其他玩家进行比赛 现在我很难生成用户输入的玩家数量列表 我收到此错误 类型错误 int 对象不可迭代 我在我的程序中经常遇到这
  • 使用图像进行相似图像搜索

    我正在开发一个项目 其中将检查两个图像的相似性 例如 Google Image Search by image 我通过 Google 以及包括 stackoverflow 在内的各种网站进行了搜索 并了解了各种技术 例如直方图 筛选 傅里叶
  • Android 工作室:java.lang.NoClassDefFoundError

    我已将我的项目从 Eclipse 导入到 Android Studio 并且它在 Lollipop 设备上运行 如果我在 kitkat 设备上运行 它会给我 未找到类定义 异常 在我的项目中我有两个包1 com qapp它具有核心功能类和2
  • 来自解构函数的调试断言失败 BLOCK_TYPE_IS_VALID(pHead->nblockuse)

    我现在很迷失 我做了一个向量类 一切都按照我希望的方式进行 直到最后 调用析构函数时 我收到一条错误消息 调试断言失败 BLOCK TYPE IS VALID pHead gt nblockuse 我在 SO 上看到过很多像这样的问题 但我
  • SQL Server T-SQL 中的整数最大值常量?

    T SQL 中是否有像其他语言中的常量一样提供数据类型 例如 int 的最大值和最小值范围 我有一个代码表 其中每一行都有一个上限和下限列 我需要一个条目来表示一个范围 其中上限是 int 可以容纳的最大值 有点像黑客无穷大 我不想对其进行
  • 通过 Javascript 缓存与在服务器中设置 HTTPResponse 标头有什么区别

    在前端 我使用 AngularJS resource 进行 GET 请求 在后端 我使用 SpringMVC 以 Restful 方式公开我的方法 现在我想缓存只有一些 of my GET要求 我注意到有一些方法可以做到这一点 例如使用 c
  • 如何以编程方式填充使用 React 构建的输入元素?

    我的任务是抓取用 React 构建的网站 我正在尝试填写输入字段并使用 javascript 注入到页面 移动设备中的 selenium 或 webview 提交表单 这对其他所有网站 技术来说都是一种魅力 但 React 似乎是一个真正的
  • 从 Web 应用程序中删除经过 Firebase 身份验证的用户

    我想添加选项以从我的 Web 应用程序中从经过 Firebase 身份验证的用户列表中删除用户 我使用的身份验证方法是电子邮件和密码身份验证 该应用程序是移动单页应用程序 基于js html css 文件 浏览器应用程序 我可以使用 fir
  • LINQ TO Nhibernate 计数

    我正在尝试使用 LINQ to Nhibernate 来获取数据库中表的计数 但是 我正在运行的代码是拉回表中的所有记录 而不是从表中运行 select count 这是我的代码 public int GetTotalCount Func
  • 我需要将 strtol 的结果转换为 int 吗?

    以下代码不会对 g 4 1 1 发出警告 并且 Wall int octalStrToInt const std string s return strtol s c str 0 8 我期待一个警告 因为 strtol 返回一个long i
  • LINQ 表达式树是真正的树吗?

    LINQ 表达式树是否是正确的树 如图中所示 有向或无向 维基百科似乎不太同意 而没有循环 以下 C 表达式的表达式树的根是什么 string s gt s Length 表达式树如下所示 其中 gt 表示可访问其他节点的节点的属性名称 g
  • ngOninit 变量未在 html Angular 4 中绑定

    在谷歌地图上工作 能够显示地图 我想显示当前位置但不显示 export class AppComponent title ngOnInit if navigator geolocation navigator geolocation get
  • Xml 中的非法字符

    我有一个 PHP 文件 它根据从多个来源导入的数据生成 Xml 站点地图 由于导入数据的一行中存在非法字符 我的站点地图目前格式不正确 但我正在努力将其删除 该字符看起来代表 平方 或上标 2 并且被表示为正方形 我尝试将其粘贴到十六进制编