When debugging an operation with UTF8 strings, sometimes I want to see the string representation from a given
Код: Выделить всё
ReadOnlySpanКод: Выделить всё
//#define FORCE_NOT_UTF8
using MemoryMarshal = System.Runtime.InteropServices.MemoryMarshal;
using Unsafe = System.Runtime.CompilerServices.Unsafe;
using Encoding = System.Text.Encoding;
static string ForgeString(ReadOnlySpan utf8Runes)
{
Span buffer = utf8Runes.Length > 1024
? new char[utf8Runes.Length]
: stackalloc char[1024]
;
#if FORCE_NOT_UTF8
Encoding.UTF8.GetChars(utf8Runes, buffer);
#else
if (Encoding.Default.BodyName != Encoding.UTF8.BodyName)
{
Encoding.UTF8.GetChars(utf8Runes, buffer);
}
else if(buffer.Length is
Источник: [url]https://stackoverflow.com/questions/78133343/casting-each-char-from-span-vs-memorymarshal-castbyte-char[/url]
Мобильная версия