【问题标题】:How to set encoding result to TextBox [duplicate]如何将编码结果设置为 TextBox [重复]
【发布时间】:2014-11-10 11:17:03
【问题描述】:

如何将我的编码结果设置为TextBox

string myString;
myString = "Hello World";
byte[] data = Encoding.ASCII.GetBytes(myString);
textBox1.Text = data.ToString();

这会在 TextBox 中显示“System.Byte[]”,但我想在 TextBox 中显示十六进制结果。

【问题讨论】:

  • 谁支持这个问题,请解释 OP 如何显示字节数组。
  • @Alireza:这不是重复的——这个人想要显示实际的字节,而不是字符串表示。
  • @Ian:重复的问题涵盖了将byte[] 显示为字符串的所有可能方式,包括实际字节。
  • @Ian Alireza 提出的问题确实涵盖了第二个答案中的所有选项。这与 Jon Skeet 的 (+1) 答案基本相同。

标签: c# encoding


【解决方案1】:

我是否正确,您正在寻找字节的十六进制转储?如果是,请尝试以下操作:

textBox1.Text = BitConverter.ToString(data);

【讨论】:

  • 谢谢你,我正在寻找十六进制...
【解决方案2】:

您无法设置文本框的编码,但听起来您只是想在文本框中显示一些二进制数据……例如,您想要十六进制吗?如果是这样,BitConverter.ToString(byte\[\]) 就是你的朋友:

textBox1.Text = BitConverter.ToString(data);

... 会给你类似48-65-6C-6C-6F-20-57-6F-72-6C-64 的东西。您可以根据需要使用string.Replace 删除连字符,例如

textBox1.Text = BitConverter.ToString(data).Replace("-", " ");

当然,二进制数据还有其他的文本表示形式。例如,您可以使用 base64:

textBox1.Text = Convert.ToBase64String(data);

但我怀疑十六进制是你所追求的。

【讨论】:

  • 谢谢我正在寻找十六进制...
【解决方案3】:

要获取byte[]string 结果,您可以使用:

textBox1.Text = Encoding.ASCII.GetString(data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2019-07-12
    • 2018-05-24
    相关资源
    最近更新 更多