안녕하세요. 저는 현재 델파이 코드를 .NET 으로 변환하고 있습니다. 데이터베이스에이 암호가 있습니다. 암호 해독했지만 문제는 바이트 배열입니다.UnicodeEncoding 출력을 일반 문자열로 변환하는 방법은 무엇입니까?
을 heres 나는
Private Function EnDeCrypt(ByVal Value As String) As String
Dim transformed = Encoding.Unicode.GetBytes(Value).Select(_
Function(item) Not item)
Return Encoding.Unicode.GetString(transformed.ToArray())
End Function
결과 지금까지 무슨 짓을했는지 :»º ¯³¶½ = edplib (인쇄 할 수없는 문자)
내 문제는
제안 문자열로 출력을 변환하는 방법입니다 그리고 도움을 크게 주신다면
'GetString()'을 호출하기 전에'transformed.ToArray()'에 의해 반환 된 raw 바이트의 16 진수 값은 무엇입니까? 'Encoding.Unicode'을 사용하면, 여러분의 코드는 바이트가 UTF-16으로 인코딩되었다고 가정하고 있습니다. 분명히 대소 문자가 아니므로, 쿼리가 단지 가비지를 반환하지 않는 한, 다른'Encoding'을 사용해야합니다. LINQ에 익숙하지 않은데 쿼리가 정확히 수행하려고하는 것을 설명 할 수 있습니까? –
이것은 마지막 질문에서 제기 한 인코딩 문제입니다. 내가 물었던 질문은 여전히 유효합니다. –
@remy LINQ 코드는 입력에 대해 비트 단위 부정을 수행하기 만합니다. 사실 나는 그 코드를 썼다. OP에 잘못된 UTF-16이 생성 될 것이라고 경고했지만 OP는 이것이 확실히 필요한 알고리즘이라고 주장했습니다. –