在C#中将特殊char转换为十六进制值

时间:2018-10-11 10:18:09

标签: c# hex

我知道如何将char转换为十六进制。但是当涉及特殊字符时,正常的转换方法不起作用。

的十六进制值是91 参考:http://www.aboutmyip.com/AboutMyXApp/AsciiChart.jsp

我的代码

            string text =  "‘";
            char[] chars = text.ToCharArray();
            StringBuilder stringBuilder = new StringBuilder();
            foreach (char c in chars)
            {
                stringBuilder.Append(((Int16)c).ToString("x"));
            }
            String textAsHex = stringBuilder.ToString();

我的产量在2018年达到了91,但是我应该得到91

1 个答案:

答案 0 :(得分:0)

基于[@ Richard,@ harold,@ jdweng和@ 500-内部服务器错误]反馈,我找到了解决问题的方法。这将包括扩展的ASCII表 [将字符转换为十六进制值]

在下面找到工作代码

        private void button3_Click(object sender, EventArgs e)
        {
            string str = "‘";
            var encoding = System.Text.Encoding.Default;
            var values = encoding.GetBytes(str);
            Decimal dec = values[0];
            var hex = ToHexString(dec);
            string result = hex.ToString();
        }

       public static string ToHexString(Decimal dec)
        {
            var sb = new StringBuilder();
            while (dec > 1)
            {
                var r = dec % 16;
                dec /= 16;
                sb.Insert(0, ((int)r).ToString("X"));
            }
            return sb.ToString();
        }

输出为91