浏览器打开xml文件报错,不识别相关16进制ASCII码

博客描述了在尝试打开XML文件时遇到的错误,浏览器报告输入不是有效的UTF-8编码,具体表现为16进制的0x08 0xE5 0x85 0xB3字节。文章提供了解决该问题的PHP和Java解决方案。
摘要由CSDN通过智能技术生成

报错如下

This page contains the following errors:

error on line 36083 at column 16: Input is not proper UTF-8, indicate encoding ! Bytes: 0x08 0xE5 0x85 0xB3

Below is a rendering of the page up to the first error.

原因:XML 规范不支持如下字符
#x00 - #x08 (ASCII 0 - 8)
#x0B - #x0C (ASCII 11 - 12)
#x0E - #x1F (ASCII 14 - 31)

解决方法

php

function removeIllegalChar($content)
{
    if (is_string($content)) {
        $content = preg_replace("/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/", "", $content);
    } else if (is_array($content)) {
        foreach ($content as $k => $v) {
            $content[$k] = removeIllegalChar($v);
        }
    }
    return $content;
}

java 

public static String removeIllegalChar(String content) {
    if (content == null || "".equals(content)) {
        return content;
    }

    return content.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值