0
문자열이 text = 0a00...4c617374736e6e41
입니다. 이 문자열은 실제로 16 진수 값을 문자로 포함합니다. 내가하려는 것은 e를 바꾸지 않고 다음의 변환을하는 것이다. 지. char a
to 0x41
;실제로 16 진수 값을 바이트 배열로 나타내는 문자를 넣는 방법
text = 0a...4c617374736e6e41;
--> byte[] bytes = {0x0a, ..., 0x4c, 0x61, 0x73, 0x74, 0x73, 0x6e, 0x6e, 0x41};
이것은 내가 지금까지 구현하려고 무엇을 :
...
string text = "0a00...4c617374736e6e41";
var storage = StringToByteArray(text)
...
Console.ReadKey();
public static byte[] StringToByteArray(string text)
{
char[] buffer = new char[text.Length/2];
byte[] bytes = new byte[text.length/2];
using(StringReader sr = new StringReader(text))
{
int c = 0;
while(c <= text.Length)
{
sr.Read(buffer, 0, 2);
Console.WriteLine(buffer);
//How do I store the blocks in the byte array in the needed format?
c +=2;
}
}
}
Console.WriteLine(buffer)
- How would I read an ascii string of hex values in to a byte array?
- How do you convert Byte Array to Hexadecimal String, and vice versa?
그리고이 예제 바이트 배열은 인코딩 된 텍스트처럼 보입니다. 디코딩하려는 경우 보낸 사람이 선택한 문자 집합 및 인코딩을 확인하십시오. 발신자가 그 정보를 당신에게 전달하지 않았다면 계약이 깨졌거나 통신/데이터 손실이 실패한 것입니다. –
어이 @TomBlodget. 좀 더 설명해 주시겠습니까? 문제가 여전히 남아 있습니다. bytestream은 특정 구조를 나타냅니다. 요소는 다음과 같습니다 : 'MessageId, MessageLanguage, MessageText'. 'Console.WriteLine (Encoding.Unicode.GetChars (ByteArray))'는 정확한'MessageLanguage = de'와'MessageText = This is sample text'를 제공합니다. 콘솔은'? '와 많은 빈 공간을 출력한다. 힌트가 있습니까? 이 문제를 해결할 수 있다면 원래 질문을 조정하고 완료 할 것입니다. – kratsching
먼저 구조를 생성하는 데 사용 된 단계를 반전하면됩니다. 텍스트를 나타내는 바이트에 관해서는 인코딩이 UTF-16 ('Encoding.Unicode')이라고 추측하는 대신에 주석에있는 코드를 사용하기 만하면 알 수있는 인코딩을 사용해야합니다. –