刚刚发现自己需要在一个*.COM应用程序中打开C#文件。*.COM文件是由fasm生成的,具有类似于以下代码的完整代码:
org 100 h jmp启动 msg: db“嗨”,0Dh,0Ah,24h 启动: mov dx,msg mov啊,09 21h mov,0 int 16h ret
当使用像Sublime这样的文本处理器打开时,它表示的代码如下所示:
eb05 4869 0d0a 24ba 0201 b409 cd21 b400 cd16 c3
我试图在应用程序中使用类似于此的代码打开这个文件。
string COMtext = File.ReadAllText(filename,encoding);
byte[] info = new UTF8Encoding(true).GetBytes(COMtext); 当与MessageBox.Show(info[i].ToString("x2"));检查时,它说,第一个字节是EF,第二个字节是BF (将EB分割成半个字节),然后在第三位(BD)上添加一个额外的字节。之后-一切都按计划进行了分析。4:05,5:48等等,我做错了什么,有没有办法解决这个问题(在这个阶段,我不清楚,因为我不知道会不会有同样的行为)
发布于 2013-05-22 04:15:27
您需要以二进制流的形式打开文件,而不是文本蒸汽。作为文本,它被编码为Unicode代理。
将File.OpenRead与字节数组一起使用。您也可以使用File.ReadAllBytes,但我不推荐使用它,因为大型文件会导致OutOfMemoryException。
https://stackoverflow.com/questions/16683331
复制相似问题