2010-06-16 28 views
2

C#의 Base-64 문자열과 관련된 몇 가지 예외가 있습니다. 다음은 샘플 문자열과 함께 예외입니다. 이 주제에 대해 너무 많이 알지는 못하지만 다음 문자열의 길이가 4의 배수임을 확인했습니다. 이러한 문제가 모두 관련되어 있기를 기대하지만 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다.Base-64 문자열의 문자가 잘못되었습니다.

"Base-64 문자열의 문자가 잘못되었습니다." DcxWhbe30oLrUI69U41gSnm7eU2c8qOx7k/eKnSaG3ZDlv8BIPHJKxl0DStVUtsjdxufrZd30K4IAl0XxBIKgKUlOt4k+nVPrfCnM4HHzw19GHnYlTr2DLhw6iD0goEnMk+bJG2xWQ4wRLLn8KOj6DdBxTes6sdpoeWKxcAHPZ2FFXqC3MfQ+SMMV7re9YiY9ZpudFFr1QVRMztzinK5YA==

"해독 할 데이터의 길이가 유효하지 않습니다." jq6xC0Dv+oeL0MXOei7wNIQgD+aon+S8N2ZfDyAO+5dlm/lIBYN+aCn2Xjnyi/XCzv7Liag5aaKXZ3b+7P7+R7lmarsT9ugnFrnvjInsvUxsbk4EAjIP55O9d7XXYnARW3yjW7klLyR0U9JjMVsISKThDtLe4rOJHgDvYahF454YOn5GlVXBoB+qNnLscGZ6

"Base-64 문자 배열의 길이가 잘못되었습니다." C8MutyUPoTrmmnprFV3wqxMMVs7O5J4NA61jhZLaCSbwteklqGHFuuSlhf0mH8L5FLJ+jcrWuns2zz+Q/o5tA0DCDGnEAxDxKraR8Ip/iDUrTCS9ZAW0VrZpqUY4EPhyCbSpdU0OwfQ05eHXqwU6LIzz3gqavpi6AlMP9H5GYTaxsfQEByswjizWs5hO2ZmH

+0

문자열에 줄 바꿈이 있거나 표시되지 않는 문자가 있습니까? – Marks

+2

어떻게 디코딩합니까? 내 'Convert.FromBase64String'이 성공적으로 실행되었습니다. – Andrey

답변

3

Andrey의 질문에 대한 응답으로 문자열을 디코딩하기 위해 사용했던 것을 살펴 보았을 때 나는 실제 문제에서 나를 눈 멀게하고 있다는 가정을하고 있었다는 것을 깨달았습니다.

데이터 문자열이 querystring 매개 변수를 통해 전달되고 있는데, 사실 사용자 설정 오류 메시지에 표시되는 매개 변수가 나쁜 문자열 인 것으로 가정하고있었습니다. 실제로 작은 디버깅이 실제로 시도한 문자열을 보여줬을 때입니다. 공백을 해독 할 수 있습니다. 쿼리 문자열을 통해 문자열을 게시하면 모든 플러스 (+) 기호가 공백으로 디코딩됩니다. 거기에서이 문제를 해결할 수 있습니다.

오해의 여지가있는이 질문을 읽는 시간을 보냈던 사람에게 감사드립니다.

+2

ViewState 데이터는 Base64로 인코딩되어 있으며 때때로 버그가있는 브라우저 (이전 버전의 Safari?)는 ViewState를 자르고 예외가 때때로 표시되도록합니다. –

관련 문제