现在的位置: 首页 > 综合 > 正文

字符串编码与未公开的DBCSCodePageEncoding

2012年03月03日 ⁄ 综合 ⁄ 共 723字 ⁄ 字号 评论关闭
  在MSDN中搜索了一下DBCSCodePageEncoding发现竟然没有找到,在索引里面只能找到DBCS的索引。互联网上也没有查到有价值的内容,这是个什么东西啊?之所以要关注它起源于近日遇到的一个问题:因为项目的需要,必须利于FlashFxp自动上传下载程序指定的文件。要实现这个功能则需要程序构建FlashFxp的传输序列文件(.fqf)。用UltraEdit查看了一下这种类型的文件,发现里面有二进制和文本的混合内容,所以不能以文本文件的方式进行创建,那么就用二进制方式吧。于是问题出来了,将字符串转换成字节时,发现与文件文件中的字节对不上。开始怀疑编码方式不对,将System.Text下预定义的的编码方式都用了,几经折腾还是没有结果。最后我试了一下UnicodeEncoding.Default.GetBytes()结果转换成功了。高兴!
  在调试模式下看了一下Default的值的类型:DBCSCodePageEncoding,于是有了上面的描述。查了一下MSDN其中Default是这样解释的“获取系统的当前 ANSI 代码页的编码”。那么DBCSCodePageEncoding到底是什么呢?我用下面的语句做了一下试验:
  Encoding enc = Encoding.GetEncoding(936); // 我的系统是简体中文的
  enc.GetBytes();
得到了相同的结果。不知大家有没有对DBCSCodePageEncoding有更多的了解?
  至于为什么不用其它的FTP控件,是因为不知道有什么好的Ftp组件可以用(支持断点续传及代理,多线程就更好了。),还有就是时间的问题,如果名位有好的Ftp组件的话,还望告之谢谢。

抱歉!评论已关闭.