我想知道如果我能知道C#中的string
字節多長時間,任何人都知道嗎?如何知道字節的字節大小?
回答
您可以像使用ASCII編碼使用System.Text.Encoding
類來獲得每個字節的字符。
或試試這個
System.Text.ASCIIEncoding.Unicode.GetByteCount(string);
System.Text.ASCIIEncoding.ASCII.GetByteCount(string);
愚蠢的問題,但如果字符串中的數據來自第三方文件,我們將如何知道是使用Unicode還是ASCII類? – 2014-02-24 01:11:09
@MatthewLock如果你想使用相同數量的字節作爲內部表示,你應該使用UTF16(或者majidgeek的'Length * sizeof(Char)',它應該給出相同的結果,因爲每個'Char'都是UTF16/2-字節)一個字符串。如果你真的想要整個對象所需的確切數量的內存,而不僅僅是其內部字符數組中的字節數,那麼你可能會考慮[更一般的方法](http://stackoverflow.com/questions/1128315/)發現尺寸-的對象實例-在字節-在-C-尖銳)。 – Bob 2014-07-02 02:25:18
System.Text.ASCIIEncoding.Unicode.GetByteCount(yourString);
或者
System.Text.ASCIIEncoding.ASCII.GetByteCount(yourString);
從MSDN:
一個
String
對象是System.Char
對象代表一個字符串的有序集合。
所以,你可以使用這個:
var howManyBytes = yourString.Length * sizeof(Char);
就我所能理解的數據結構的基礎知識而言,它是與 – LoneXcoder 2015-10-08 09:38:49
進行比較的最「樸實」選擇。不要忘記考慮長度成員的大小。 int howMyBytes = yourString.Length * sizeof(Char)+ sizeof(int); – 2015-11-29 07:56:29
如果我的字符串長度大於Int,該怎麼辦? – 2017-05-11 06:53:56
退房[這個答案](http://stackoverflow.com/questions/472906/net-string-to-byte-array-c-sharp )。 – dasblinkenlight 2012-01-03 04:02:10
您是在問一個字符串對象佔用多少內存,或者當寫入文件或通過網絡發送(即編碼)時,字符串表示佔用多少字節,因爲這是兩個完全不同的問題。 majidgeek幾乎回答了前者,而diya回答了後者(至少對於兩種常見的編碼)。 – 2013-05-03 08:50:33
可能重複[需要多少字節?](http://stackoverflow.com/questions/3967411/how-much-bytes-will-take) – nawfal 2013-10-23 07:12:08