zoukankan      html  css  js  c++  java
  • 如何用c#将十六进制转换成字符串?

    
    

    加载或保存XML时引发的异常.System.ArgumentException: “”(十六进制值 0x1D)是无效的字符。
    产生原因是xml文件中包含低位非打印字符造成的
    处理方法:在产生xml文件的时候,过滤低位非打印字符

    
    

    把一个字符串中的 低序位 十进制 ASCII 字符 替换成 &#x  字符
    转换  ASCII  0 - 8  -> � - 
    转换  ASCII 11 - 12 -> - 
    转换  ASCII 14 - 31 ->  - 

    XML中十六进制无效字符如下:
    [\x00-\x08]|[\x0B-\x0C]|[\x0E-\x1F]


    解决方法如下:替换无效字符
    你想要一个16进制数形式的字符串或是把每个16进制数转成它代表的ascii字符?你的源数据是个byte[]?

    第一种就没什么可说的了,直接调每个byte的ToString("X")再叠加.结果:转换成对应的ascii字符
    例子:
    byte b = 0xff;
    string s=b.ToString("X");//s="FF"
    第二种:byte是可以直接转成char的,每个ascii码就是一个byte,前面加个(char)强转然后用string迭代相加就可以了.
    结果:转换成对应的字符
    string s = string.Empty;
    s+=(char)b;//这个s的值是ascii码255代表的字符,打不出来

    下面是ASCII对应表

    第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符、归位字符)。

    
    

    第二部分是由 20H 到 7FH 共 96 个,这 95 个字符是用来表示阿拉伯数字、英文字母大小写和底线、括号等符号,都可以显示在屏幕上。如下表:

    
    

    第三部分由 80H 到 0FFH 共 128 个字符,一般称为『扩充字符』,这 128 个扩充字符是由 IBM 制定的,并非标准的 ASCII 码。这些字符是用来表示框线、音标和其它欧洲非英语系的字母。

    
    
  • 相关阅读:
    数据挖掘十大经典算法
    vc++17 进程间的通信
    GOOGLE笔试题(10.15电子科大)
    解决Vmware下Linux上网问题
    Eclipse 常用快捷键
    Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg')
    linux下ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
    eclipse环境变量设置
    为什么写博客
    eclipse添加自动代码提示
  • 原文地址:https://www.cnblogs.com/pingfan/p/2947527.html
Copyright © 2011-2022 走看看