是否存在将字符串,int等转换为字节/字节数组的静态方法?
我已经知道这个方法:
public static byte[] FromString(string Input)
{
ASCIIEncoding ByteEncoder = new ASCIIEncoding();
return ByteEncoder.GetBytes(Input);
}
但我想知道是否有更好的东西。如果我使用ASCII编码器的静态实例来使用它会是一个问题吗?
另外 - 在性能方面 - 上面的ASCII转换方法与通过for循环或其他多线解决方案的方法相比如何?
另外 - 我什么时候应该使用ASCII与Unicode? p>
威廉
答案 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 - 非常好的文章。