life清者自清 2016-12-19 03:01 采纳率: 66.7%
浏览 1294
已采纳

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字符,只需要之前的部分,其它内容截断不要。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?