life清者自清
2016-12-19 03:01
采纳率: 63.6%
浏览 1.3k

c# 注册表获取displayname的值,每次获取财付通的时候就会遇到乱码,具体如下:

注册表里内容如下:图片说明
代码如下:图片说明

本来应该是:财付通安全控件 2.0.2.9,但是获取displayname是"财付通安全控件 2.0.2.9\0\0\0υﲞĐ醙υĄ\0ē\0\0υﳔυ绛Ēហ觡ﳔυ绯Ē醙υ绾Ē\0痳\0\0호痵홐痵]ĀC:\Program Files (x86)\Common Files\Tencent\Paycenter\0餘\u0018ӱ\0\0\0\0Ā\0\0⎈\0燵āυ\u0019"。
不知道什么原因,有知道的吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Tiger_Zhao 2016-12-19 03:14
    已采纳

    Ansi-Unicode字符串转换时长度判断出问题了。
    自己对displayName做个后期处理:如果存在\0字符,只需要之前的部分,其它内容截断不要。

    点赞 打赏 评论
  • hehexiaoxia 2016-12-19 03:36

    应该是编码格式不对,尝试采用utf-8或者gbk获取。

    点赞 打赏 评论

相关推荐 更多相似问题