public static 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", "")); }
private static string DecodeString(byte[] data, DataCoding dataCoding) { string result; switch (dataCoding) { case DataCoding.Ascii: result = Encoding.ASCII.GetString(data); break; case DataCoding.Latin1: result = Latin1Encoding.GetString(data); break; case DataCoding.Ucs2: result = Encoding.BigEndianUnicode.GetString(data); break; case DataCoding.SmscDefault: result = SmscDefaultEncoding.GetString(data); break; default: throw new SmppException(SmppErrorCode.EsmeRunknownerr, "Unsupported encoding"); } return(result); }
public static 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 }