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
去掉美字,显示:丽的误会,就正常了
大家帮忙看看问题出在哪?最好在错误的代码上改正过来
展开
 我来答
Winnip888
2009-03-30 · TA获得超过1996个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:563万
展开全部
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)
这样也行!
百度网友42ed5ea5c
2009-03-30 · TA获得超过201个赞
知道答主
回答量:350
采纳率:100%
帮助的人:219万
展开全部
复制代码的时候先切换到汉字输入法就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式