解决在反编译中出现中文字符都表示成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 @ 2007-01-30 11:36  阿新  阅读(1570)  评论(1编辑  收藏  举报