• XML十六进制无效的字符(0x0b 0x0c 0x02)



    前言

    xml 中包含了非打印字符的情况下,即使是放在cdata 中,在不同平台上解析结果不一样,ios 基本上会解析失败,Android基本上都能正确解析,H5有的能正常解析,有的不能正常解析,在这种情况下,要对这个字符进行过滤后再解析,因为这种字符在视觉上是不会呈现,但在word等文档中可以看到一些符号,和格式控制。

    解决方法

    过滤去除,去除时要取字符的ASCLL码值来判断,0-8,11,12,14-32的都去除
    java 代码 逐字符检查过滤

    public static String replaceLowASCIICharacters(String tmp) {
            StringBuilder info = new StringBuilder();
            for (int i = 0; i < tmp.length(); i++) {
                char c = tmp.charAt(i);
                if ((int) c <= 8) {
                    continue;
                }
                if ((int) c >= 11 && (int) c <= 12) {
                    continue;
                }
                if ((int) c >= 14 && (int) c <= 32) {
                    continue;
                }
                info.append(c);
            }
            return info.toString();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ASCII“字符”

    1、ASCII 打印字符

    数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。注:十进制32代表空格 ,十进制数字 127 代表 DELETE 命令。
    ASCII码和相应数字的对照表
    在这里插入图片描述
    在这里插入图片描述

    2、ASCII 非打印控制字符

    ASCII 表上的数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。例如,12 代表换页/新页功能。此命令指示打印机跳到下一页的开头。
    ASCII 非打印控制字符表
    在这里插入图片描述

    3、扩展 ASCII 打印字符

    扩展的 ASCII 字符满足了对更多字符的需求。扩展的 ASCII 包含 ASCII 中已有的 128 个字符(数字 0–32 显示在下图中),又增加了 128 个字符,总共是 256 个。即使有了这些更多的字符,许多语言还是包含无法压缩到 256 个字符中的符号。因此,出现了一些 ASCII 的变体来囊括地区性字符和符号.
    在这里插入图片描述
    可复制字符表:

    十进制十六进制字符十进制十六进制字符
    12880Ç192C0
    12981ü193C1
    13082é194C2
    12981ü193C1
    13082é194C2
    13183â195C3
    13284ä196C4
    13385à197C5
    13486å198C6
    13587ç199C7
    13688ê200C8
    13789ë201C9
    1388Aè202CA
    1398Bï203CB
    1408Cî204CC
    1418Dì205CD
    1428EÄ206CE
    1438FÅ207CF
    14490É208D0
    14591æ209D1
    14692Æ210D2
    14793ô211D3
    14894ö212D4Ô
    14995ò213D5
    15096û214D6
    15197ù215D7
    15298ÿ216D8
    15399Ö217D9
    1549AÜ218DA
    1559B¢219DB
    1569C£220DC
    1579D¥221DD
    1589E222DE
    1599Fƒ223DF
    160A0á224E0α
    161A1í225E1ß
    162A2ó226E2Γ
    163A3ú227E3π
    164A4ñ228E4Σ
    165A5Ñ229E5σ
    166A6ª230E6µ
    167A7º231E7τ
    168A8¿232E8Φ
    169A9233E9Θ
    170AA¬234EAΩ
    171AB½235EBδ
    172AC¼236EC
    173AD¡237EDφ
    174AE«238EEε
    175AF»239EF
    176B0240F0
    177B1241F1±
    178B2242F2
    179B3243F3
    180B4244F4
    181B5245F5
    182B6246F6÷
    183B7247F7
    184B8248F8
    185B9249F9
    186BA250FA·
    187BB251FB
    188BC252FC
    189BD253FD²
    190BE254FE
    191BF255FF

    4、ASCII 之外

    另一个更新的字符表称为Unicode (Unicode:Unicode Consortium 开发的一种字符编码标准。该标准采用多(于一)个字节代表每一字符,实现了使用单个字符集代表世界上几乎所有书面语言)。 因为 Unicode 表大得多,它可以表示 65,536 个字符,而 ASCII 表只能表示 128 个字符,扩展的 ASCII 表也只能表示 256 个字符。这一更大的容量使不同语言的大多数字符都能包含在同一个字符集中。

    ASCII 字符输入方法与常用地方

    1、在文档中插入 ASCII 字符

    该功能需要 Excel、FrontPage、InfoPath、OneNote、Outlook、PowerPoint、Project、Publisher、Word 或 Visio。

    2、输入方法

    除了在键盘上键入字符外,也可以使用该符号的字符代码作为键盘快捷键。
    要从上面的图表中插入 ASCII 字符,在按住 ALT 的同时键入等价的十进制数字。
    例如,要插入度数符号,在按住 ALT 的同时在数字键盘上键入 0176。
    注意:必须使用数字键盘来键入数字,而不是键盘。如果您的键盘需要打开 Num Lock 键才能在数字键盘上键入数字,请务必打开它。

  • 相关阅读:
    Spark离线开发指南(详细版)
    电动平衡车UL2272测试哪些项目
    从Spring为什么要用IoC的支点,我撬动了整个Spring的源码脉络
    u盘启动出现蓝屏怎么办
    代码随想录32——贪心:122买卖股票的最佳时机II、55跳跃游戏、45跳跃游戏II
    oceanbase数据库安装和连接实战(阿里云服务器操作)
    Mr.Alright---MTK安卓13 抬手亮屏功能的逻辑
    Vue Grid Layout -️ 适用Vue.js的栅格布局系统,在vue3+上使用
    《Python 快速入门》C站最全Python标准库总结
    Nacos源码 (6) Grpc概述与Nacos集成
  • 原文地址:https://blog.csdn.net/lanlangaogao/article/details/125404612