解决在反编译中出现中文字符都表示成16进制Unicode的形式



在vs.net 2003中打开[Tools]-[macros]-[macros explorer]
然后将下面的代码copy-paste 进去
代开你要转换的cs文件,在mymacros form中单击dubug就可以了

 1Imports EnvDTE
 2Imports System.Globalization
 3Imports System.Text.RegularExpressions
 4Imports System.Diagnostics
 5Public Module Birdshome
 6    Sub Unicode2Character()
 7        Dim doc As Document = DTE.ActiveDocument
 8        Dim docText As TextDocument = doc.Object
 9        Dim selText As TextSelection = docText.Selection()
10        selText.SelectAll()
11        Dim text As String = selText.Text
12        Dim iLength As Integer
13        Do
14            iLength = text.Length
15            Dim m As Match
16            Dim strPattern As String = "(?<code>\\u[A-F0-9]{4})"
17            m = Regex.Match(text, strPattern, RegexOptions.IgnoreCase)
18            If m.Success Then
19                Dim strValue As String
20                strValue = m.Groups("code").Value
21                text = text.Replace(strValue, "")
22                Dim int As Integer
23                int = System.Int32.Parse(strValue.Substring(24), NumberStyles.HexNumber)
24                Dim ch As Char = ChrW(int)
25                docText.ReplacePattern(strValue, ch)
26            Else
27                Exit Do
28            End If
29            If Not text.Length < iLength Then
30                Exit Do
31            End If
32        Loop
33        selText.StartOfDocument()
34    End Sub

35End Module

36


一切就都搞定了

希望能给大家提供一些帮助

posted @   阿新  阅读(1583)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示