在一个从outlook联系人导入的数据中发现一个数据,“Xu Jianping”,我在设置断点以后在即时窗口得到的结果是"Xu Jianping",但是在用Console.WriteLine之后得到的结果是“Xu?Jianping”在此数据中Contain('?')的结果总为false……这其中的那个不可显示的字符究竟是什么呢?怎么让他变成正常的空格啊?

解决方案 »

  1.   

    string.ToCharArray() 然后去查 ASCII 表
      

  2.   

    控制台不能显示所有的Unicode字符,
    你看看(int)str[2]是多少
      

  3.   


    item.SenderName
    "Xu Jianping"
    item.SenderName.ToCharArray()
    {char[11]}
        [0]: 88 'X'
        [1]: 117 'u'
        [2]: 160 ' '
        [3]: 74 'J'
        [4]: 105 'i'
        [5]: 97 'a'
        [6]: 110 'n'
        [7]: 112 'p'
        [8]: 105 'i'
        [9]: 110 'n'
        [10]: 103 'g'
    那个神秘的字符居然是160不在可见字符内呃……
      

  4.   

    控制台不能显示所有的Unicode字符
      

  5.   


    那能不能把它表示出来用Replace替换呢?
      

  6.   

    用正则进行替换Regex.Replace(input, "\\W", " ") //\W 等效于 [^a-zA-Z_0-9]