public static String decodeDataCodingScheme(Pdu pdu)
	{
		StringBuffer sb = new StringBuffer();
		switch (PduUtils.extractDcsEncoding(pdu.getDataCodingScheme()))
		{
			case PduUtils.DCS_ENCODING_7BIT:
				sb.append("7-bit GSM Alphabet");
				break;
			case PduUtils.DCS_ENCODING_8BIT:
				sb.append("8-bit encoding");
				break;
			case PduUtils.DCS_ENCODING_UCS2:
				sb.append("UCS2 encoding");
				break;
		}
		// are flash messages are only applicable to general coding group?
		if ((pdu.getDataCodingScheme() & ~PduUtils.DCS_CODING_GROUP_GENERAL) == 0)
		{
			switch (PduUtils.extractDcsClass(pdu.getDataCodingScheme()))
			{
				case PduUtils.DCS_MESSAGE_CLASS_FLASH:
					sb.append(", (Flash Message)");
					break;
				case PduUtils.DCS_MESSAGE_CLASS_ME:
					sb.append(", (Class1 ME Message)");
					break;
				case PduUtils.DCS_MESSAGE_CLASS_SIM:
					sb.append(", (Class2 SIM Message)");
					break;
				case PduUtils.DCS_MESSAGE_CLASS_TE:
					sb.append(", (Class3 TE Message)");
					break;
			}
		}
		return sb.toString();
	}