我試圖在.NET中生成一個隨機字符串並將其轉換爲字節,並運行到一個小難度。我想要全套可能的字符,我的理解是一個字符串可以包含任何字符。生成一個隨機字符串
我的代碼是目前如下:
var plainText = new StringBuilder();
for (int j = 0; j < stringLength; ++j)
{
plainText.Append((char)_random.Next(char.MinValue, char.MaxValue));
}
byte[] x = Encoding.Unicode.GetBytes(plainText.ToString());
string result = Encoding.Unicode.GetString(x);
從理論上講,plainText
和result
應該是相同的。他們大多是相同的,但一些原始字符丟失,似乎是在55000-57000範圍內的字符 - 他們被替換爲字符65533.
我假設問題是與我的編碼,但我認爲Unicode會妥善處理這個問題。我試過UTF8和UTF32,但那些給我同樣的問題。
有什麼想法?
奇怪?! unicode可能是,但是當你用utf-32測試它時? – TheHe
你想達到什麼目的? – CodesInChaos
我假設你正在生成一個帶有未配對代理字符的無效UTF-16字符串。 – CodesInChaos