1

It's maybe a selly question.. but I'm a bit confused and having a problem in the decoding..

The question is what's the different between this string:

ndE9a8MwEIDhv5JNky1Z/ogrbNNCFkPaoS1dy9lRUoOlc3xn6M vnGQIHToU hOBAvA HKgI3TmaPJ1z41Z4XS7z5sDMN6GuhYyU27a4WnznoDFSmIpXoIlyp jjJ9OEbbUnd9lxfHHkBsvt3oyVyStVhmbxBoIOPBWTLcm7en570JUTPNyNjj GOpEi209MXgOoEqySJXhvCfapLlRhWiqNWguD c74m8BiOzMYQvRfDFPZKSE aYrR2xFPg497dHKtSGcZDsAg03KbPBSVvNNu9Euot7t/0ejAxTDO0HXAj509 o1vpm3INN9fp1y80Pw==

And this one:

ndE9a8MwEIDhv5JNky1Z/ogrbNNCFkPaoS1dy9lRUoOlc3xn6M vnGQIHToU\nhOBAvA HKgI3TmaPJ1z41Z4XS7z5sDMN6GuhYyU27a4WnznoDFSmIpXoIlyp\njjJ9OEbbUnd9lxfHHkBsvt3oyVyStVhmbxBoIOPBWTLcm7en570JUTPNyNjj\nGOpEi209MXgOoEqySJXhvCfapLlRhWiqNWguD c74m8BiOzMYQvRfDFPZKSE\naYrR2xFPg497dHKtSGcZDsAg03KbPBSVvNNu9Euot7t/0ejAxTDO0HXAj509\no1vpm3INN9fp1y80Pw==

I copied both of them from Visual Studio for a string.. The first one from the TextVisualizer:

enter image description here

And the other one from the preview value window:

enter image description here

And how can I get the second first one from the second one?

Edit: Here is my code: This is my code.. Why I'm not able to decode the response?

response = response.Replace("\n", "");
var data = Convert.FromBase64String(response);
var decoder = Encoding.UTF8.GetDecoder();
string encodedString = Encoding.UTF8.GetString(data);

I'm getting this result!

��=k�0�ῒM�-Y��+l�BCڡ-]��QR��s|g�ϯ�d:��@��*7Nf�'\�՞K���3 �k�c%6��9�T�"��"\��2}8F�Rw}��@l����\��Xfoh ��Y2ܛ��� Q3�����D�m=1x�J�H��'ڤ�Q�h�5h.�;�o���a�|1Od��i���O��{tr�Hg� �r�<���n�K�������0��u���=�[�r 7���/4?

4

2 回答 2

0

换行符和所有其他控制符号都打印在预览值窗口中:) 这是字符串较长的原因

ndE9a8MwEIDhv5JNky1Z/ogrbNNCFkPaoS1dy9lRUoOlc3xn6M vnGQIHToU\nhOBAvA HKgI3TmaPJ1z41Z4XS7z5sDMN6GuhYyU27a4WnznoDFSmIpXoIlyp\njjJ9OEbbUnd9lxfHHkBsvt3oyVyStVhmbxBoIOPBWTLcm7en570JUTPNyNjj\nGOpEi209MXgOoEqySJXhvCfapLlRhWiqNWguD c74m8BiOzMYQvRfDFPZKSE\naYrR2xFPg497dHKtSGcZDsAg03KbPBSVvNNu9Euot7t/0ejAxTDO0HXAj509\no1vpm3INN9fp1y80Pw==

ndE9a8MwEIDhv5JNky1Z/ogrbNNCFkPaoS1dy9lRUoOlc3xn6M vnGQIHToU \n hOBAvA <--

我不知道在您的情况下使用哪种编码,但我通过替换所有 \n 来工作

var b64 =
  "ndE9a8MwEIDhv5JNky1Z/ogrbNNCFkPaoS1dy9lRUoOlc3xn6M vnGQIHToU\nhOBAvA HKgI3TmaPJ1z41Z4XS7z5sDMN6GuhYyU27a4WnznoDFSmIpXoIlyp\njjJ9OEbbUnd9lxfHHkBsvt3oyVyStVhmbxBoIOPBWTLcm7en570JUTPNyNjj\nGOpEi209MXgOoEqySJXhvCfapLlRhWiqNWguD c74m8BiOzMYQvRfDFPZKSE\naYrR2xFPg497dHKtSGcZDsAg03KbPBSVvNNu9Euot7t/0ejAxTDO0HXAj509\no1vpm3INN9fp1y80Pw==";

var replacedNewLine = b64.Replace("\n", string.Empty);

var decoded = Encoding.Default.GetString(Convert.FromBase64String(replacedNewLine));
Console.WriteLine(decoded);
Console.Read();

两个字符串的结果相同

PS:似乎不是默认编码或加密文本。

于 2014-08-08T12:57:07.973 回答
0

编辑:我误读了您的预期输出。

有一个区别:在第一个中寻找换行符:“\n”。作为猜测,文本可视化器正在以某种方式解析字符串并将字符串包装在 \n 的位置。至于得到这个:用string.emptyy或“”替换所有换行符(“\n”)。

于 2014-08-08T12:58:40.897 回答