示例#1
0
        private void appendBytes(StringBuilder sb, byte[] data, bool isTransferEncode, int encodeLevel)
        {
            if (data != null)
            {
                int newLength = (int)((data.Length + sb.Length) * BUFFER_MULTIPLIER);

                sb.EnsureCapacity(newLength);

                for (int i = 0; i <= data.Length; i += TransferEncodingHelper.LARGE_DATA_SIZE)
                {
                    int end = i + TransferEncodingHelper.LARGE_DATA_SIZE;
                    if (end > data.Length)
                    {
                        end = data.Length;
                    }

                    byte [] sub        = SubArray(data, i, end);
                    String  tempString = System.Text.Encoding.ASCII.GetString(sub);;
                    if (isTransferEncode)
                    {
                        TransferEncodingHelper.encode(tempString, sb, encodeLevel);
                    }
                    else
                    {
                        sb.Append(tempString);
                    }
                }
            }
        }
示例#2
0
        public static String transferDecode(String value)
        {
            try
            {
                var s = TransferEncodingHelper.decode(value);

                return(s);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Error decoding string value '" + value + "'", ex);
            }
        }
示例#3
0
        public StringBuilder valueToEncodedString(object value, ClassicEncodingSettings settings, StringBuilder sb, int?encodeLevel)
        {
            string strVal = this.valueToString(value, settings);

            if (strVal == null)
            {
                return((settings == null || !settings.isUseVisibleSeparators()) ? sb.Append(DataTableUtils.DATA_TABLE_NULL) : sb.Append(DataTableUtils.DATA_TABLE_VISIBLE_NULL));
            }

            if (this.isTransferEncode())
            {
                TransferEncodingHelper.encode(strVal, sb, encodeLevel);
            }
            else
            {
                sb.Append(strVal);
            }

            return(sb);
        }
示例#4
0
        public StringBuilder encode(StringBuilder sb, ClassicEncodingSettings settings, bool isTransferEncode, int encodeLevel)
        {
            bool useVisibleSeparators = false;

            if (settings != null)
            {
                useVisibleSeparators = settings.isUseVisibleSeparators();
            }

            char elStart      = useVisibleSeparators ? DataTableUtils.ELEMENT_VISIBLE_START : DataTableUtils.ELEMENT_START;
            char elEnd        = useVisibleSeparators ? DataTableUtils.ELEMENT_VISIBLE_END : DataTableUtils.ELEMENT_END;
            char elNameValSep = useVisibleSeparators ? DataTableUtils.ELEMENT_VISIBLE_NAME_VALUE_SEPARATOR : DataTableUtils.ELEMENT_NAME_VALUE_SEPARATOR;

            if (isTransferEncode)
            {
                TransferEncodingHelper.encodeChar(elStart, sb);
                if (name != null)
                {
                    TransferEncodingHelper.encode(name, sb, 0);
                    TransferEncodingHelper.encodeChar(elNameValSep, sb);
                }
            }
            else
            {
                sb.Append(elStart);
                if (name != null)
                {
                    sb.Append(name);
                    sb.Append(elNameValSep);
                }
            }

            if (encodable != null)
            {
                encodable.encode(sb, settings, isTransferEncode, encodeLevel);
            }
            else if (fieldFormat != null)
            {
                fieldFormat.valueToEncodedString(fieldValue, settings, sb, encodeLevel);
            }
            else
            {
                if (isTransferEncode)
                {
                    TransferEncodingHelper.encode(value, sb, encodeLevel);
                }
                else
                {
                    sb.Append(value);
                }
            }

            if (isTransferEncode)
            {
                TransferEncodingHelper.encodeChar(elEnd, sb);
            }
            else
            {
                sb.Append(elEnd);
            }
            return(sb);
        }
示例#5
0
 public static string transferEncode(string value)
 {
     return(TransferEncodingHelper.encode(value, 1));
 }