【发布时间】:2020-05-04 00:34:10
【问题描述】:
我将我的十六进制转换为转储以获得特殊字符,如符号,但是当我尝试转换我的“0x18”时,我“\u0018”这个值。谁能给我解决这个问题。
这是我的代码:
public static string FromHexDump(string sText)
{
Int32 lIdx;
string prValue ="" ;
for (lIdx = 1; lIdx < sText.Length; lIdx += 2)
{
string prString = "0x" + Mid(sText, lIdx, 2);
string prUniCode = Convert.ToChar(Convert.ToInt64(prString,16)).ToString();
prValue = prValue + prUniCode;
}
return prValue;
}
我用的是VB语言。我有一个数据库,它已经将文本加密到我的密码中,并且值是 BAA37D40186D 就像这样,所以我按步骤 2 循环它,它会像这样 0xBA,0xA3,0x7D,0x40,0x18,0x6D 和 VB 结果得到像这样 º£}@m
【问题讨论】:
-
我会重新考虑你的方法。看这里:stackoverflow.com/a/25639044/3135317
-
我想将我的十六进制转换为特殊字符,例如像这样的“0xA3”= £但是当这个“0x18”我得到这样的“\u0018”
-
试着采用我给你看的例子。
-
您能提供一些转储示例吗?说,
"abc0x1234def"和预期结果? -
@confidentialaccount .NET 字符串是 Unicode。这不是见仁见智的问题。您不需要任何类型的转义来在 Unicode 字符串中包含“特殊”字符。
\u0018是 C# 转义序列,用于在 字符串文字 中插入 single, non printable Cancel Character,控制字符就像 CR 或 LF,即在代码。井号字符的转义序列是\u00A3。你确定你不会因为一些不存在的转义序列而混淆调试器的视图吗?