ucs4decoderbigengian.cs

来自「Freetextbox是优秀的在线编辑器」· CS 代码 · 共 41 行

CS
41
字号
namespace FreeTextBoxControls.Support.Sgml
{
    using System;

    internal class Ucs4DecoderBigEngian : Ucs4Decoder
    {
        internal override int GetFullChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
        {
            byteCount += byteIndex;
            int num2 = byteIndex;
            int num3 = charIndex;
            while ((num2 + 3) < byteCount)
            {
                uint num1 = (uint) ((((bytes[num2 + 3] << 0x18) | (bytes[num2 + 2] << 0x10)) | (bytes[num2 + 1] << 8)) | bytes[num2]);
                if (num1 > 0x10ffff)
                {
                    throw new Exception("Invalid character 0x" + num1.ToString("x") + " in encoding");
                }
                if (num1 > 0xffff)
                {
                    chars[num3] = base.UnicodeToUTF16(num1);
                    num3++;
                }
                else
                {
                    if ((num1 >= 0xd800) && (num1 <= 0xdfff))
                    {
                        throw new Exception("Invalid character 0x" + num1.ToString("x") + " in encoding");
                    }
                    chars[num3] = (char) ((ushort) num1);
                }
                num3++;
                num2 += 4;
            }
            return (num3 - charIndex);
        }

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?