0
我试图用改性GUID(例如6b5737e5728786794fff5e009d74d706
)字符串转换为十六进制字符串格式像\x..\x..
将字符串隐藏为格式为“ x .. x ..”的十六进制字符串?
(String format and hex chars不为我工作)。有任何想法吗?
我试图用改性GUID(例如6b5737e5728786794fff5e009d74d706
)字符串转换为十六进制字符串格式像\x..\x..
将字符串隐藏为格式为“ x .. x ..”的十六进制字符串?
(String format and hex chars不为我工作)。有任何想法吗?
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,& c。那么请再想一想。 字符串不是字节容器,它们是文本容器。你想在这种情况下,一个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)));
我的字符串是一个普通的UTF8字符串(改性GUID)(例如6b5737e5728786794fff5e009d74d706),我需要从它一个十六进制字符串指定的格式。 – kazarindn 2012-03-21 08:17:28
我不知道你的意思是UTF8字符串。在.NET中,不存在所有字符串都使用UTF-16的情况。如果你不告诉我什么是错误的或者我的解决方案存在问题(我认为它适用于你的情况),并且重申你的问题已经陈述了并不真正有帮助。 – Joey 2012-03-21 08:19:40
“6b5737e5728786794fff5e009d74d70”是一个带有UTF8编码(用于Windows Phone的Encoding.UTF8)的字符串。我需要将它转换为“\ x ..”格式的十六进制刺。 – kazarindn 2012-03-21 08:23:39