string GetCharText()
        {
            int ch = GetChar();

            if (ch > char.MaxValue)
            {
                SurrogateChar surrogate = new SurrogateChar(ch);
                char[]        chars     = new char[2];
                chars[0] = surrogate.HighChar;
                chars[1] = surrogate.LowChar;
                return(new string(chars, 0, 2));
            }
            else
            {
                return(((char)ch).ToString());
            }
        }
Exemplo n.º 2
0
 unsafe protected void WriteUTF8Char(int ch)
 {
     if (ch < 0x80)
     {
         WriteByte((byte)ch);
     }
     else if (ch <= char.MaxValue)
     {
         char *chars = stackalloc char[1];
         chars[0] = (char)ch;
         UnsafeWriteUTF8Chars(chars, 1);
     }
     else
     {
         SurrogateChar surrogateChar = new SurrogateChar(ch);
         char *        chars         = stackalloc char[2];
         chars[0] = surrogateChar.HighChar;
         chars[1] = surrogateChar.LowChar;
         UnsafeWriteUTF8Chars(chars, 2);
     }
 }
 protected unsafe void WriteUTF8Char(int ch)
 {
     if (ch < 0x80)
     {
         this.WriteByte((byte)ch);
     }
     else if (ch <= 0xffff)
     {
         char *chars = (char *)stackalloc byte[(((IntPtr)1) * 2)];
         chars[0] = (char)ch;
         this.UnsafeWriteUTF8Chars(chars, 1);
     }
     else
     {
         SurrogateChar ch2    = new SurrogateChar(ch);
         char *        chPtr2 = (char *)stackalloc byte[(((IntPtr)2) * 2)];
         chPtr2[0] = ch2.HighChar;
         chPtr2[1] = ch2.LowChar;
         this.UnsafeWriteUTF8Chars(chPtr2, 2);
     }
 }