如何将双字节字符串转换为单字节字符串?

时间:2013-03-11 05:32:51

标签: c# textbox

我是C#的新手 我有一个Textbox,可以接受double_byte字符串,用于输入/显示日期值。 现在我遇到了问题,我不知道如何解决这个问题。我用Google搜索,无法找到解决方案。
当我写Double_Byte个字符( 2012/12/31 )时,我想在{{1}处将此值更改为( 2012/12/31 ) of TextBox或此Leave_Event此TextBox的事件。那么,我该如何解决问题呢。

修改 - >我的解决方案是Window Application。

提前致谢。

3 个答案:

答案 0 :(得分:4)

您应该可以使用Encoding.Defaultdouble_byte字符串转换为single_byte字符串

 string singleByteString = Encoding.Default.GetString(Encoding.Default.GetBytes(inputText));

试验:

    private void button1_Click(object sender, EventArgs e)
    {
        string inputText = textBox1.Text;
        string singleByteString = Encoding.Default.GetString(Encoding.Default.GetBytes(inputText));

        textBox2.Text = singleByteString;
        textBox3.Text = inputText;
    }

结果:

enter image description here

答案 1 :(得分:1)

感谢您的所有答案和兴趣 我搜索了一个解决方案,没有找到任何答案。最后,我从同事那里得到了一个很好的答案。 因此,我同意这个问题的答案。

  1. 添加参考Microsoft.VisualBasic
  2. 像这样写代码(像sa_ddam213's answer那样测试) -
  3. 
    using Microsoft.VisualBasic;
    
    private void button1_Click(object sender, EventArgs e)
    {
          string inputText = textBox1.Text;
          string singleByteString =  Strings.StrConv(inputText, VbStrConv.Narrow, 0);
    
          textBox2.Text = singleByteString;
          textBox3.Text = inputText;
    }

答案 2 :(得分:-1)

在数据库中发送文本框值时,将其解析为日期。

确保将该文本框的x值存储在数据库中作为DateTime数据类型。

解析可以按照以下方式完成>

double d = double.Parse(txtDate.text);
DateTime conv = DateTime.FromOADate(d);

或者最简单的方法是使用>>

DateTime.Parse(txtDate.Text);

希望这会对你有所帮助。