我正在尝试在 .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,但它们给了我同样的问题。
有什么想法吗?