Запрос в Spring-Boot JPA печатает в журнале с пустым переводом строки

Вы не должны использовать Encoding.GetString для преобразования произвольных двоичных данных в строку. Этот метод предназначен только для текста, который был закодирован для двоичных данных с использованием определенной кодировки.

Вместо этого вы хотите использовать текстовое представление, которое может представлять произвольные двоичные данные обратимо. Два наиболее распространенных способа сделать это base64 и hex. Base64 является самым простым в .NET:

string base64 = Convert.ToBase64String(originalBytes);
...
byte[] recoveredBytes = Convert.FromBase64String(base64);

Несколько предостережений к этому:

  • Если вы хотите использовать эту строку в качестве параметра URL, вы должны использовать веб-безопасная версия base64; Я не знаю о прямой поддержке этого в .NET, но вы, вероятно, можете найти решения достаточно легко
  • Вы должны делать это вообще , если вам действительно нужны данные в строковый формат. Если вы просто пытаетесь записать его в файл или аналогичный, проще всего хранить его как двоичные данные
  • Base64 не очень читабельна для человека; используйте hex, если вы хотите, чтобы люди могли читать данные в текстовой форме без дополнительной оснастки. (Существуют различные вопросы, касающиеся преобразования двоичных данных в шестнадцатеричные и обратно.)
0
задан Shakthi 11 March 2019 в 20:09
поделиться