Java Base64 кодировка текста [дубликат]

Это делает группу не захватывающей, что означает, что подстрока, соответствующая этой группе, не будет включена в список захватов. Пример в рубине, чтобы проиллюстрировать разницу:

"abc".match(/(.)(.)./).captures #=> ["a","b"]
"abc".match(/(?:.)(.)./).captures #=> ["b"]
11
задан Ronnie 1 March 2013 в 13:37
поделиться

2 ответа

Попробуйте это в Java: это даст вам длинную версию строки (UTF-8)

byte[] encoded = Base64.encode(encrypted.getBytes("UTF-8"), Base64.DEFAULT);
String str = new String(encoded, "UTF-8");

Обновлено:

Попробуйте это на Java: это даст вы короткая версия строки (CP1252)

// This should give the same results as in PHP
byte[] encoded = Base64.encode(encrypted.getBytes("CP1252"), Base64.DEFAULT);
String str = new String(encoded, "CP1252");

Альтернативно попробуйте этот скрипт PHP:

file: test.php

<?php

echo base64_encode($_GET['str'])." Default UTF-8 version<br />";
echo base64_encode(iconv("UTF-8","CP1252",$_GET['str']))." CP1252 Version <br />";

?>

usage: http://[SOMEDOMAIN]/test.php?str=†+Ü]M(‡=ñö
12
ответ дан Shehabix 26 August 2018 в 13:40
поделиться

Для меня CP1252 не работал, потому что он не прошел с не буквенно-цифровыми символами. Лучшая кодировка, которую я нашел, - ISO-8859-1, используется следующим образом:

Base64.getEncoder()
                .encodeToString(
                    stringToBeEncoded.getBytes(
                        Charset.forName("ISO-8859-1")))
0
ответ дан Gismo Ranas 26 August 2018 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: