C# 将字节字符串强制转换为人类可读的旧式字符串

C# 将字节字符串强制转换为人类可读的旧式字符串,c#,.net,C#,.net,大家早上好/晚上好 我有一个类似于“0x0SD30SV8GN48N84GN”格式的字符串,它表示一个字节数组。。。我如何将其打开到实际的字节[] 实际的字符串相当长 它表示一个UTF-8格式的字符串,我正试图将其转换为UTF-32 我想把它变成一个人类可读的字符串。。。可能吗 PS:场景是:我的同事在varbinary列中存储了一个字符串。。。执行“从mytable中选择myVarBinaryColumn”并将结果作为txt发送给我。。。我需要转换成人类可读的字符串 PS2:字符串可以理解为以下

大家早上好/晚上好

我有一个类似于
“0x0SD30SV8GN48N84GN”
格式的字符串,它表示一个字节数组。。。我如何将其打开到实际的
字节[]

实际的字符串相当长

它表示一个UTF-8格式的字符串,我正试图将其转换为
UTF-32

我想把它变成一个人类可读的字符串。。。可能吗

PS:场景是:我的同事在varbinary列中存储了一个字符串。。。执行“从mytable中选择myVarBinaryColumn”并将结果作为txt发送给我。。。我需要转换成人类可读的字符串

PS2:字符串可以理解为以下操作的结果:Cast('Hello World'为varbinary(max))

退房 另外,关于stackoverflow还有一个非常类似的问题

退房 另外,在stackoverflow上还有另一个非常类似的问题

stringbytestr=input.Substring(2);
byte[]bytes=新字节[byteStr.Length/2];
对于(inti=0,j=0;i
stringbytestr=input.Substring(2);
byte[]bytes=新字节[byteStr.Length/2];
对于(inti=0,j=0;i
此字符串如何表示字节数组?用UTF-8格式表示字符串是什么意思?字符串在.net中始终使用UTF-16。您的问题非常不清楚。@code您注意到字符串以“0x”开头,这是一种表示十六进制数的国际符号。如果您身边有一个MSSQL数据库引擎,那么下面的“Cast('Hello World'as varBinary(Max)),我注意到了
0x
,但我也注意到了大量的非十六进制字符。所以我把
0x
当作巧合,这个字符串是如何表示字节数组的?用UTF-8格式表示字符串是什么意思?字符串在.net中始终使用UTF-16。您的问题非常不清楚。@code您注意到字符串以“0x”开头,这是一种表示十六进制数的国际符号。如果您身边有一个MSSQL数据库引擎,那么下面的“Cast('Hello World'as varBinary(Max)),我注意到了
0x
,但我也注意到了大量的非十六进制字符。所以我把
0x
当作巧合,我在注意到OP想要转换为UTF32后更新了我的答案,虽然我仍然不确定它是OP想要的,但它显然不再是错误的(ASCII肯定是不正确的)。所以我删除了下载。如果这不是OP想要的,那么问一个不清楚的问题是他自己的错。@CODES我同意你的意见,我注意到你对OP的评论,希望清楚。我在注意到OP想要转换为UTF32后更新了我的答案,而我仍然不确定这是OP想要的,这显然不再是错误的事情(ASCII肯定是不正确的)。所以我删除了下载。如果这不是OP想要的,那么问一个不清楚的问题是他自己的错。@code我同意你的意见,我注意到你对OP的评论,并期望清晰
 string yourstring ="0x0SD30SV8GN48N84GN";
 byte[] array = Encoding.UTF32.GetBytes(yourstring);
byte[] array = Encoding.UTF32.GetBytes(somestring);
string byteStr = input.Substring(2);
byte[] bytes = new byte [ byteStr.Length / 2 ];
for ( int i = 0, j = 0 ; i < byteStr.Length ; i += 2 , j++ )
{
     bytes [ j ] = byte.Parse ( byteStr.Substring ( i , 2 ) , NumberStyles.HexNumber );
}
string str = Encoding.UTF8.GetString ( bytes );
byte[] UTF32Bytes = Encoding.UTF32.GetBytes ( str );