if (current < 127)
    target.Text += current;
else
    {
    target.Text += "&#";
    string code = ((int)current).ToString();
    target.Text += code;
    target.Text += ";";
    }

解决方案 »

  1.   

    if (current < 127)
    的意思是,判断current这个字符是不是一个ascii字符,比如英文数字等,如果是ascii字符,则直接加入target.Text中,下面的else是处理current不是英文数字标点的情况,比如是汉字的一部分时,则把它转化为转义符,应该是html,
      

  2.   


    不好意思,没把代码发齐private void copyClick(object sender, RoutedEventArgs e)
            {
                target.Text = "";
                string from = source.Text;
                for (int i = 0; i != from.Length; i++)
                {
                    char current = from[i];
                    copyOne(current);
                }
            }        private void copyOne(char current)
            {
                switch (current)
                {
                    case '<':
                        target.Text += "&lt;";
                        break;
                    case '>':
                        target.Text += "&gt;";
                        break;
                    case '&':
                        target.Text += "&amp;";
                        break;
                    case '\"':
                        target.Text += "&#34;";
                        break;
                    case '\'':
                        target.Text += "&#39;";
                        break;
                    default:
                        if (current < 127)
                            target.Text += current;
                        else
                        {
                            target.Text += "&#";
                            string code = ((int)current).ToString();
                            target.Text += code;
                            target.Text += ";";
                        }
                        break;
                }
      

  3.   

    意思是写的特别烂.
    else里面为什么不能写target.Text += "&#" + current + ";";
      

  4.   

    if (current < 127)//如果current<127
      target.Text += current;//target的文本值追加current的值
    else//否则
      {
      target.Text += "&#";//target的文本值追加"&#"
      string code = ((int)current).ToString();//强转current为int类型,然后 再转为string类型并赋值给code
      target.Text += code;//traget文本值追加Code的值
      target.Text += ";";//target文本值追加";"
      }
      

  5.   

    我想再问下,里面(int)current转换位的数字是什么类型的数字
      

  6.   

    (int)current 转换为十进制的数字
      

  7.   


    我意思这些数字既然不是ascii码的序号,那是什么码的呢
      

  8.   

    (int)current得到的是这个字符的unicode编码,unicode码是16位的整数,
      

  9.   

    every guy has his own style