日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# 读hex_在C#中将string转换为hexstring

發布時間:2024/7/23 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 读hex_在C#中将string转换为hexstring 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先你需要把它放到一個byte[] ,所以這樣做:

byte[] ba = Encoding.Default.GetBytes("sample");

然后你可以得到string:

var hexString = BitConverter.ToString(ba);

現在,這將返回一個帶有破折號( - )的string,所以你可以簡單地使用這個:

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

如果你想要擺脫那些。

注意:如果需要,可以使用不同的Encoding 。

var result = string.Join("", input.Select(c => ((int)c).ToString("X2")));

要么

var result =string.Join("", input.Select(c=> String.Format("{0:X2}", Convert.ToInt32(c))));

對于Unicode支持:

public class HexadecimalEncoding { public static string ToHexString(string str) { var sb = new StringBuilder(); var bytes = Encoding.Unicode.GetBytes(str); foreach (var t in bytes) { sb.Append(t.ToString("X2")); } return sb.ToString(); // returns: "48656C6C6F20776F726C64" for "Hello world" } public static string FromHexString(string hexString) { var bytes = new byte[hexString.Length / 2]; for (var i = 0; i < bytes.Length; i++) { bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); } return Encoding.Unicode.GetString(bytes); // returns: "Hello world" for "48656C6C6F20776F726C64" } }

根據這個片段,這個方法應該適用于長string:

private string StringToHex(string hexstring) { StringBuilder sb = new StringBuilder(); foreach (char t in hexstring) { //Note: X for upper, x for lower case letters sb.Append(Convert.ToInt32(t).ToString("x")); } return sb.ToString(); }

用法:

string result = StringToHex("Hello world"); //returns "48656c6c6f20776f726c64"

另一種方法在一條線上

string input = "Hello world"; string result = String.Concat(input.Select(x => ((int)x).ToString("x")));

幾個Unicode的替代品

var s = "0𝟏𝟚𝟥𝟰𝟻"; var s1 = s.Aggregate("", (h, c) => h + ((int)c).ToString("x4")); // left padded with 0 "0030d835dfcfd835dfdad835dfe5d835dff0d835dffb" var s2 = s.Aggregate("", (h, c) => h + string.Format("{0,4:x}", (int)c)); // left padded with space " 30d835dfcfd835dfdad835dfe5d835dff0d835dffb" var sL = BitConverter.ToString(Encoding.Unicode.GetBytes(s)).Replace("-", ""); // Little Endian "300035D8CFDF35D8DADF35D8E5DF35D8F0DF35D8FBDF" var sB = BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(s)).Replace("-", ""); // Big Endian "0030D835DFCFD835DFDAD835DFE5D835DFF0D835DFFB" // no encodding "300035D8CFDF35D8DADF35D8E5DF35D8F0DF35D8FBDF" byte[] b = new byte[s.Length * sizeof(char)]; Buffer.BlockCopy(s.ToCharArray(), 0, b, 0, b.Length); var sb = BitConverter.ToString(b).Replace("-", "");

總結

以上是生活随笔為你收集整理的c# 读hex_在C#中将string转换为hexstring的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。