VB中Unicode转换,部分汉字出现乱码
Dimopcode1AsStringDimadmemAsStringDimhAsLong,text_AddrAsLong,neizhuanAsStringopcode1=...
Dim opcode1 As String
Dim admem As String
Dim h As Long, text_Addr As Long, neizhuan As String
opcode1 = Form1.Text19.Text
admem = StrConv(opcode1, vbUnicode) + Chr(0) + Chr(0) + Chr(0)
neizhuan = admem
text_Addr = VirtualAllocEx(hProcess, ByVal 0&, 500, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
WriteProcessMemory hProcess, ByVal text_Addr, ByVal neizhuan, 500, 0&
Dim str1 As String
ReadProcessMemory hProcess, ByVal text_Addr, ByVal str1, 500, ByVal 0&
Debug.Print str1
------------------------------------------------------------------
以上代码能正常转换,但部分汉字会出现乱码,比如:美丽的误会 ,就会出现乱码:□律□□O
去掉美字,显示:丽的误会,就正常了
大家帮忙看看问题出在哪?最好在错误的代码上改正过来 展开
Dim admem As String
Dim h As Long, text_Addr As Long, neizhuan As String
opcode1 = Form1.Text19.Text
admem = StrConv(opcode1, vbUnicode) + Chr(0) + Chr(0) + Chr(0)
neizhuan = admem
text_Addr = VirtualAllocEx(hProcess, ByVal 0&, 500, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
WriteProcessMemory hProcess, ByVal text_Addr, ByVal neizhuan, 500, 0&
Dim str1 As String
ReadProcessMemory hProcess, ByVal text_Addr, ByVal str1, 500, ByVal 0&
Debug.Print str1
------------------------------------------------------------------
以上代码能正常转换,但部分汉字会出现乱码,比如:美丽的误会 ,就会出现乱码:□律□□O
去掉美字,显示:丽的误会,就正常了
大家帮忙看看问题出在哪?最好在错误的代码上改正过来 展开
2个回答
展开全部
admem = StrConv(opcode1, vbFromUnicode) + Chr(0) + Chr(0) + Chr(0)
Debug.Print StrConv(admem, vbUnicode)
楼主的代码不完整,我提示一下。你第一次应该转为字节数组,第二次能转出unicode码。我给你例子了。
如果你有完整代码我可以帮你改正
还有。不用数组。
StrConv(StrConv(opcode1, vbFromUnicode) + Chr(0) + Chr(0) + Chr(0),vbUnicode)
这样也行!
Debug.Print StrConv(admem, vbUnicode)
楼主的代码不完整,我提示一下。你第一次应该转为字节数组,第二次能转出unicode码。我给你例子了。
如果你有完整代码我可以帮你改正
还有。不用数组。
StrConv(StrConv(opcode1, vbFromUnicode) + Chr(0) + Chr(0) + Chr(0),vbUnicode)
这样也行!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询