【问题标题】:How do I preserve ASCII value in string?如何在字符串中保留 ASCII 值?
【发布时间】:2014-08-25 19:05:31
【问题描述】:

如何让字符串在其中保存 ascii 值?

假设我有这个脚本。

string stringValue = "";

for(var x = 1; x < 32; x++)
{
    stringValue += x.ToString();
}

byte[] byteValues = Encoding.ASCII.GetBytes(stringValue);

在字节中,您会得到 49、50、51、52 ​​等。问题是如何将其保存为像“49505152”这样的字符串。 (看起来像 49 50 51 52 组合成字符串)。

谢谢。

【问题讨论】:

  • 你到底为什么要想要“49505152”等?您能否就您真正想要实现的目标向我们提供更多背景信息?
  • 某公司的 PHP 程序员使用 "$foo = chr(x)" 来构建加密密钥。不要问我为什么。
  • 真的感觉像是一个XY问题。 meta.stackexchange.com/questions/66377/what-is-the-xy-problem
  • @fletchsod 安全性差应该提示您问“为什么?”。
  • 我很好奇看到生产代码:)

标签: c# .net


【解决方案1】:

您可以使用string.Concat

var result = string.Concat(byteValues);

您也可以使用相同的方法重新编写循环:

string stringValue = string.Concat(Enumerable.Range(1, 31));

【讨论】:

  • (未投票)为什么要使用 string.Concat 而不是 string.Join?
  • 因为不需要分隔符
  • @downvoters,这个答案是不正确的,还是因为你不喜欢这个问题而投反对票?
  • 这不是答案。
  • 第一行应该是正确的。第二行产生的数字 1-31 粘在一起,不使用 Encoding.ASCII.GetBytes。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 2010-09-28
  • 2022-12-22
相关资源
最近更新 更多