我尝试将修改后的GUID字符串(例如6b5737e5728786794fff5e009d74d706
)转换为格式为\x..\x..
的十六进制字符串
(String format and hex chars对我不起作用)。有什么想法吗?
答案 0 :(得分:3)
Regex.Replace(myString, ".{2}", "\\x$0");
如果您想要使用非正则路由,那么以下内容可能会有效:
string s = "6b5737e5728786794fff5e009d74d70";
var sb = new StringBuilder($s.Length * 2);
for (int i = 0; i < s.Length; i+=2)
sb.Append("\\x").Append(s.Substring(i, [Math]::Min(2, s.Length - i)));
string myNewString = sb.ToString();
如果你想让你的字符串包含(例如)代码点U + 006B,U + 0057,U + 0037,&amp; c。那么请再想一想。 字符串不是字节容器,它们是 text 容器。在这种情况下你需要byte[]
:
byte[] byteArray = new byte[(s.Length + 1) / 2]
for (int i = 0; i < s.Length; i+=2)
byteArray[i/2] = Convert.ToByte(s.Substring(i, [Math]::Min(2, s.Length - i)));