16進文字列を文字列出力に変換

9975 ワード

///<summary>
    ///  16 
    /// </summary>
    /// <param name="hex"></param>
    /// <param name="charset"> , "utf-8","gb2312"</param>
    /// <returns></returns>
    public  string HexToStr(string hex, string charset)
    {
        if (hex == null)
            throw new ArgumentNullException("hex");
        hex = hex.Replace(",", "");
        hex = hex.Replace("
", ""); hex = hex.Replace("\\", ""); hex = hex.Replace(" ", ""); if (hex.Length % 2 != 0) { hex += "20";// } // hex byte 。 byte[] bytes = new byte[hex.Length / 2]; for (int i = 0; i < bytes.Length; i++) { try { // byte。 bytes[i] = byte.Parse(hex.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber); } catch { // Rethrow an exception with custom message. throw new ArgumentException("hex is not a valid hex number!", "hex"); } } System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset); return chs.GetString(bytes); }

 
public string HexToStr(string mHex) //  
        {
            mHex = mHex.Replace(" ", "");
            if (mHex.Length <= 0) return "";
            byte[] vBytes = new byte[mHex.Length / 2];
            for (int i = 0; i < mHex.Length; i += 2)
                if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))
                    vBytes[i / 2] = 0;
            return ASCIIEncoding.Default.GetString(vBytes);
        }
 public string StrToHex(string mStr) // 
        {
            return BitConverter.ToString(
            ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");
        } 

 
 /// <summary>  

        /// 16   

        /// </summary>  

        /// <param name="hexString"></param>  

        /// <returns></returns>  

        public static byte[] strToToHexByte(string hexString)
        {

            hexString = hexString.Replace(" ", "");

            if ((hexString.Length % 2) != 0)

                hexString += " ";

            byte[] returnBytes = new byte[hexString.Length / 2];

            for (int i = 0; i < returnBytes.Length; i++)

                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16);

            return returnBytes;

        }