将字符串等转换为字节和字节数组

时间:2012-05-30 19:58:42

标签: c# bytearray byte type-conversion

是否存在将字符串,int等转换为字节/字节数组的静态方法?

我已经知道这个方法:

    public static byte[] FromString(string Input)
    {
        ASCIIEncoding ByteEncoder = new ASCIIEncoding();
        return ByteEncoder.GetBytes(Input);
    }

但我想知道是否有更好的东西。如果我使用ASCII编码器的静态实例来使用它会是一个问题吗?

另外 - 在性能方面 - 上面的ASCII转换方法与通过for循环或其他多线解决方案的方法相比如何?

另外 - 我什么时候应该使用ASCII与Uni​​code?

威廉

4 个答案:

答案 0 :(得分:4)

没有静态方法。但是,有Encoding的静态实例。

System.Text.Encoding.ASCII.GetBytes()

在性能方面,您应该信任BCL。它是经过仔细编写的,所以你应该期待接近最优的代码,并且肯定能更好地处理一个并不总是考虑的所有边缘情况。

答案 1 :(得分:1)

答案 2 :(得分:1)

看看BitConverter。它支持整数和浮点数。对于字符串也是Encoding.UTF8

BitConverter.GetBytes(4); // Int32

System.Text.Enconding.UTF8.GetBytes("My string"); // String

您可能希望支持unicode,即使您不使用它也是如此。尝试使用UTF8而不是ascii,以便在需要时支持扩展字符。

答案 3 :(得分:1)

主要问题已经得到解答,但要回答最后一个问题,如果您必须支持非英语字符集和符号,请使用Unicode。如果你正在使用英文全局字符子集,那么坚持使用ASCII(虽然我更喜欢UTF-8。此外,这是分享Spolsky智慧的好机会。http://www.joelonsoftware.com/articles/Unicode.html - 非常好的文章。