我在ILSpy中打开foo.exe并能够找到myString。
我确实在十六进制编辑器中看到了人类可读的文本,但我认为.net字符串以其他方式编码。
某些背景是我们有一个客户端站点,该站点使用大约10年以上的旧代码交换服务器,并且服务器配置是硬编码的。在测试期间,旧服务器仍处于联机状态,直到生产12个小时后才发现问题。
#1 楼
C#将其字符串文字编码为UTF-16。(http://csharpindepth.com/Articles/General/Strings.aspx)
要在HxD中搜索十六进制,您需要检查HxD中的Unicode字符串复选框,之后便可以搜索您的字符串。
如果能够在不破坏UTF-16和文件大小的情况下将字符串更改为正确的字符,则新字符串将得到更新。答案,但将其丢弃,仅添加一个可以更好地说明您答案的屏幕截图
评论
请不要像Microsoft经常那样将编码称为“ Unicode”。 Unicode有几种编码,这里使用的是UTF-16。
– svick
17年6月20日15:38
@svick,有时是UCS16,这也很烦人(编码为16位整数的Unicode代码点。
–躲藏
17年6月23日在1:30