Пример #1
0
        public virtual string GetStringFromBytes(byte[] data, DataCoding dataCoding)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string result = null;

            switch (dataCoding)
            {
            case DataCoding.ASCII:
                result = System.Text.Encoding.ASCII.GetString(data);
                break;

            case DataCoding.Latin1:
                result = Latin1Encoding.GetString(data);
                break;

            case DataCoding.SMSCDefault:
                result = SMSCDefaultEncoding.GetString(data);
                break;

            case DataCoding.UCS2:
                result = UCS2Encoding.GetString(data);
                break;

            default:
                throw new SmppException(SmppErrorCode.ESME_RUNKNOWNERR, "Unsupported encoding");
            }
            //Since a CString may contain a null terminating charactor
            //Replace all occurences of null charactors
            return(result.Replace("\u0000", ""));
        }
Пример #2
0
        public virtual string GetCStringFromBytes(byte[] data, DataCoding dataCoding)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (data.Length < 1)
            {
                throw new ArgumentException("Array cannot be empty", "data");
            }
            if (data[data.Length - 1] != 0x00)
            {
                throw new ArgumentException("CString must be terminated with a null charactor", "data");
            }
            if (data.Length == 1)
            {
                return("");
            }                                    //The string is empty if it contains a single null charactor
            string result = null;

            switch (dataCoding)
            {
            case DataCoding.ASCII:
                result = System.Text.Encoding.ASCII.GetString(data);
                break;

            case DataCoding.Latin1:
                result = Latin1Encoding.GetString(data);
                break;

            case DataCoding.SMSCDefault:
                result = SMSCDefaultEncoding.GetString(data);
                break;

            case DataCoding.UCS2:
                result = UCS2Encoding.GetString(data);
                break;

            default:
                throw new SmppException(SmppErrorCode.ESME_RUNKNOWNERR, "Unsupported encoding");
            }
            return(result.Replace("\x00", ""));//Replace the terminating null charactor
        }