-2

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

我已经知道这种方法:

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

但我想知道是否有更好的。如果我制作了 ASCII 编码器的静态实例来使用会不会有问题?

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

另外 - 我什么时候应该使用 ASCII 与 Unicode?

威廉

4

4 回答 4

4

没有静态方法。但是,也有Encoding.

System.Text.Encoding.ASCII.GetBytes().

在性能方面,您应该信任 BCL。它经过精心编写,因此您应该期待接近最佳的代码,并且当然可以更好地处理人们并不总是考虑的所有边缘情况。

于 2012-05-30T20:00:51.323 回答
1

什么是ASCIIEncoding.ASCII.GetBytes()

于 2012-05-30T20:01:49.893 回答
1

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

BitConverter.GetBytes(4); // Int32

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

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

于 2012-05-30T20:02:39.950 回答
1

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

于 2012-05-30T20:10:48.590 回答