CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

【100分】讨论一下关于reflector反编译生成的文件中中文显示的问题

楼主chuyf(楚云飞)2006-03-04 14:57:40 在 .NET技术 / C# 提问

当reflector   反编译之后,所有的中文信息都被显示为\uXXXX的形式  
  我在网上找了许多关于unicode转换为中文显示的例子,也自己动手实现了一个  
  却发现总是不好用,对于网上的一些例子所给的比如都能成功转换,但对于  
  reflector反编译出来的中文信息总是不好用  
  请教高手,有没有已经实现的能够处理reflector这类中文的软件或算法或方法  
  (最好已经实践成功)  
  我抛砖引玉,写一下自己用的:  
  (代码来源于网上:)    
  此代码能把\uXXXX的转换成英语,但不能看到中文(部分可以,我用reflector要的不行)  
   
  我要反编译的代码示例:  
                MessageBox.Show("\u7500\u6400\u6500\u6e00\u7400\u4300\u6800\u6f00\u6900\u6300\u6500\u2000\u4900\u6e00\u7400\u6f00\u2000\u4000\u5300\u7400\u7500\u6400\u6500\u6e00\u7400\u4e00\u6f00\u2c00\u4000\u5300\u7500\u6200\u6a00\u6500\u6300\u7400\u4b00\u6500\u7900\u2c00\u4000\u5300\u6500\u6c00\u6500\u6300\u7400\u5300\u7400\u6100\u7400\u6500\u2c00\u4000\u5300\u6500\u6c00\u6500");  
                     
   
  byte[]   bytes   =   new   byte[2];  
  string   lowCode   =   coding.Substring(i,   2);   //取出低字节,并以16进制进制转换  
  bytes[0]   =   System.Convert.ToByte(lowCode,   16);  
  string   highCode   =   coding.Substring(i   +   2,   2);   //取出高字节,并以16进制进行转换  
  bytes[1]   =   System.Convert.ToByte(highCode,   16);  
  string   character   =   System.Text.Encoding.Unicode.GetString(bytes);  
  characters   +=   character;  
   
  问题点数:100、回复次数:5Top

1 楼chuyf(楚云飞)回复于 2006-03-04 15:05:06 得分 0

我的程序转换出来的结果  
  我估计不对吧:  
   
  MessageBox.Show("udentChoice   Into   @StudentNo,@SubjectKey,@SelectState,@Sele");Top

2 楼iuhxq(小灰)回复于 2006-03-04 15:26:28 得分 20

源代码里是这样,但编译结果是汉字Top

3 楼chuyf(楚云飞)回复于 2006-03-04 15:35:17 得分 0

?   没明白你的意思?!,  
   
                MessageBox.Show("\u7500\u6400\u6500\u6e00\u7400\u4300\u6800\u6f00\u6900\u6300\u6500\u2000\u4900\u6e00\u7400\u6f00\u2000\u4000\u5300\u7400\u7500\u6400\u6500\u6e00\u7400\u4e00\u6f00\u2c00\u4000\u5300\u7500\u6200\u6a00\u6500\u6300\u7400\u4b00\u6500\u7900\u2c00\u4000\u5300\u6500\u6c00\u6500\u6300\u7400\u5300\u7400\u6100\u7400\u6500\u2c00\u4000\u5300\u6500\u6c00\u6500");  
   
  是我反编译出来的源码,我估计里面应该是汉字  
  MessageBox.Show("udentChoice   Into   @StudentNo,@SubjectKey,@SelectState,@Sele");  
  是我转换出来的结果,我估计是错误的  
   
  不知道大家转换的结果是多少?!  
  Top

4 楼lovebanyi(风云)回复于 2006-03-04 17:11:42 得分 80

这样转当然是错误码的了..你要把\u先去掉..然后建立一个bytd数组..比如你的\u7500   75先放上去.接着再放下一个00这样就可以转出来了.   (有可能是00先放你测一下)  
   
   
   
  ====淡泊以明志,宁静以致远====  
   
   
  Top

5 楼chuyf(楚云飞)回复于 2006-03-04 20:51:55 得分 0

我的程序是这样做的,分割字符串那部分我没贴,我只贴了从   7500   转成中文的过程  
  我转出来是uTop

相关问题

  • VC生成的EXE文件能不能反编译
  • 用W32Dasm反编译生成的汇编代码如何再生成C源代码?!
  • .net如何设置选项,使生成的dll或exe无法被反编译?
  • 用什么可以把delphi生成的.exe反编译成单元文件?
  • 我写的asp.net程序,编译后生成的DLL文件别人可以反编译,怎么才能不让别人反编译或即使反编译,也看不到我程序的源码?
  • 请高手指点,有没有可以反编译VB4生成的可执行文件的工具!急
  • 反编译FOXPROX
  • 反编译VB.NET
  • 反编译
  • 反编译

关键词

  • 编译
  • 中文
  • 代码
  • 转换
  • reflector
  • 反编译
  • 显示
  • byte

得分解答快速导航

  • 帖主:chuyf
  • iuhxq
  • lovebanyi

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo