我正在尝试在.NET中生成一个随机字符串并转换为字节,但遇到了一些困难。我想要包含所有可能字符的完整集合,我的理解是字符串可以包含任何字符。
目前我的代码如下:
在理论上,
我假设问题出在我的编码上,但我认为Unicode会正确处理这个问题。我已经尝试过UTF8和UTF32,但是这些都给我带来了同样的问题。
有什么想法吗?
目前我的代码如下:
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,但是这些都给我带来了同样的问题。
有什么想法吗?