代码之家  ›  专栏  ›  技术社区  ›  demoncodemonkey

如何在.NET中将ASCII值转换为字符

  •  10
  • demoncodemonkey  · 技术社区  · 15 年前

    关于如何将一个字符转换为它的ASCII值,这里有上百万篇文章。
    我想要完全相反的。
    我有一个存储为int的ascii值,我想用一个字符串显示它的ascii字符表示。

    也就是说,请显示转换int的代码 65 A .

    我现在拥有的是 String::Format("You typed '{0}'", (char)65)

    但这会导致 "You typed '65'" 但是我希望它是 "You typed 'A'"

    我使用C++/CLI,但我想任何.NET语言都可以…

    (幽默后编辑,为未来的谷歌用户改进问题)

    7 回复  |  直到 12 年前
        1
  •  8
  •   Austin Salonen gmlacrosse    15 年前

    在C++中:

    int main(array<System::String ^> ^args)
    {
        Console::WriteLine(String::Format("You typed '{0}'", Convert::ToChar(65)));
        return 0;
    }
    
        2
  •  19
  •   Guffa    15 年前

    有几种方法,如下所示:

    char c = (char)65;
    char c = Convert.ToChar(65);
    string s = new string(65, 1);
    string s = Encoding.ASCII.GetString(new byte[]{65});
    
        3
  •  7
  •   Marc Gravell    15 年前

    对于ASCII值,您应该只能够强制转换为char?(C:)

    char a = (char)65;
    

    或者作为字符串:

    string a = ((char)65).ToString();
    
        4
  •  3
  •   EdChum Arthur G    12 年前
     Dim str as string    
     str = Convert.ToChar(65).ToString()
     msgbox(str)
    
        5
  •  2
  •   yfeldblum    15 年前

    当然,复杂的版本是:

    public string DecodeAsciiByte(byte b) {
        using(var w = new System.IO.StringWriter()) {
            var bytebuffer = new byte[] { b };
            var charbuffer = System.Text.ASCIIEncoding.ASCII.GetChars(bytebuffer);
            w.Write(charbuffer);
            return w.ToString();
        }
    }
    

    当然,那是在我用 Encoding.GetString 方法。噢。

    public string DecodeAsciiByte(byte b) {
        return System.Text.Encoding.ASCII.GetString(new byte[] { b });
    }
    
        6
  •  1
  •   Michael Petrotta user3140870    15 年前

    就这么做吧,再简单不过了。

    // C#
    int i = 65;
    Console.WriteLine((char)i);
    
        7
  •  1
  •   mike01010    12 年前

    有很多方法可以解决这个问题。如果您想让他们输入连续的数字和空格,那么您可以使用如下内容:

        string userInput = "123456";
        var digits = str.Select(c => Convert.ToInt32(c.ToString()));