【发布时间】:2013-08-11 20:10:49
【问题描述】:
我正在尝试使用以下字符串对我的解析器进行崩溃测试:
var theWholeUTF8 = new StringBuilder();
for (char code = Char.MinValue; code <= Char.MaxValue; code++)
{
theWholeUTF8.Append(code);
}
但是,测试在构建字符串时会自行崩溃并抛出 OutOfMemoryException。 我错过了什么?
【问题讨论】:
-
theWholeUTF8并不是一个准确的变量名; UTF-8 是一种编码,.NET 字符串使用 UTF-16。 -
@minitech 感谢您的提示!
-
另外,该字符串实际上不是有效的 UTF-16。而且它不会包含所有 Unicode 代码点。
-
@MikeRoll 因为surrogate pairs。