2016-02-10 3 views
0

Я пишу клиента REST из примера использования C#. Теперь мне нужно преобразовать строку в нужном формате, но не могу найти эквивалентный метод на Java.преобразование строки в ASCII -> BASE64

оригинал:

string Credentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(string); 

В этот момент я сделал это:

String Credentials = new String(DatatypeConverter.parseBase64Binary(String)); 

, но я по-прежнему необходимо преобразование ASCII, и я не уверен, что то, что я имею кладезь волю работа прекрасна, как: Convert character to ASCII numeric value in java

любые подсказки?

спасибо.

+1

Можете ли вы уточнить, хотите ли вы производить Base64 из ASCII, как в примере # C или ASCII из Base64, как ваше использование parseBase64Binary предлагает? – Aaron

+2

По существу, неясно, чего вы пытаетесь достичь здесь. Пожалуйста, предоставьте более подробную информацию. –

+0

Я просто пытаюсь добиться того же содержимого в переменной Credentials. Я думал, это было довольно ясно, извините. Моему коду все еще нужно создать ASCII-кодировку переменной String, которая затем будет преобразована в Base64. Я прав? – Freddy

ответ

0

Если вы используете java 8, вы должны взглянуть на его новый класс Base64. Он предоставит вам Base64.Encoder, метод encodeToString(byte[] src) принимает массив байтов и возвращает строку с кодировкой base64.

String base64 = Base64.getEncoder().encodeToString("I'm a String".getBytes()); 
System.out.println(base64); // prints SSdtIGEgU3RyaW5n 
+0

Должен быть какой-то способ указать ASCII? –

+0

Нет, не должно быть, и я действительно не понимаю, почему C# потребует этого. 'String.getBytes' предоставляет фактические байты, является ли строка ASCII или unicode, а Base64 кодирует тезисы байтов в текст. Это когда вы декодируете байты Base64, что вы должны сказать, являются ли закодированные байты ASCII или unicode или что-то еще – Aaron

+0

Спасибо, что сработало с некоторыми попытками. :) – Freddy

Смежные вопросы