这两个字节数组是不同的.
如下:
byte[] tmp = EnCoding.ASCII.GetBytes(EnCoding.ASCII.GetString(b));
假设b是一个字节数组.
b[0]=3,b[1]=188,b[2]=2 //decimal system
结果:
tmp[0]=3,tmp[1]=63,tmp[2]=2
这就是我的问题,它有什么问题?
解决方法 ASCII仅为7位,因此其他无效. By default it uses?
to replace any invalid bytes and that’s why you get a ?
. 对于8位字符集,您应该寻找Extended ASCII(后来定义为“ISO 8859-1”)或code page 437(通常与扩展ASCII混淆,但实际上并非如此).
您可以使用以下代码:
EnCoding enc = EnCoding.GetEnCoding("iso-8859-1");// For CP437,use EnCoding.GetEnCoding(437)byte[] tmp = enc.GetBytes(enc.GetString(b));总结
以上是内存溢出为你收集整理的c#编码中的一个奇怪的事情全部内容,希望文章能够帮你解决c#编码中的一个奇怪的事情所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)