2015-07-01 3 views
1

У меня есть строка, которая содержит некоторые закодированные значения каким-то образом, как Base64.Как автоматическое определение строковой кодировки?

Проблема в том, что я действительно не знаю, действительно ли это Base64 (есть A-Z, a-z. 0-9, +, /), поэтому это может быть какой-то другой код, с которым я не знаком.

Есть ли способ или любой другой онлайн-сайт, чтобы отправить ему кодированный ввод, и он может сказать мне, в каком коде это?

Примечание: Я не спрашиваю, как знать, если моя строка является UTF-8 или ISO-8859-1 или что-то подобное. Мне нужно знать, в каком кодируется мой код.

EDIT:

Чтобы быть более ясным,

мне нужно что-то, чтобы получить вход как: 23Nzi4lUE4qlc+Pmc3blWMS1Irmgo3i8UTQHhoL7VyzqpEV/i9bDhoiteZ0a7/TqcVSkrXR89V2Yj7tEFDGJx4gvWEBs= это закодированные строки, что у меня есть.

Выход должен быть типом кодированной строки, и это декодирование, как:

Base64 -> "Big yellow fish is swimming in the tube." 

Может быть, есть какая-то программа, которая получить это вход и пытается расшифровать его со списком типов кодирования (Base64 и т.д. .). Выход не имеет большого значения, потому что это решение пользователей, если оно хорошо или нет.

+2

Пробуйте все возможные кодировки, которые вы знаете и которые готовы обрабатывать по порядку. Если он декодирует с использованием определенного кодирования, он был * вероятно * закодирован в этой кодировке. Это действительно то же самое, что и попытка угадать UTF-8, ISO-8859 или любую другую кодировку. – deceze

+0

Известен ли ожидаемый результат? – user2864740

+0

Нет, и кодированный тип не известен также –

ответ

-1

This site ручки основа64 de/кодировка.

Поскольку Base64 - это всего лишь один экземпляр класса схем кодирования (в частности, кодирование битового потока как base_ <n>), вы, вероятно, никогда не будете лучше, чем тестирование только для нескольких стандартных схем кодирования.

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

В (возможно, патологических) случаях будет более одной схемы кодирования, для которой данный октетный поток будет успешно декодироваться.

Лучшей практикой было бы вложить усилия, направленные на то, чтобы перенести проверку на то, чтобы передать поставщик данных одной (или «нескольким») кодировкам (сначала не всегда, конечно).

+0

Я видел этот сайт, прежде чем задал этот вопрос, и это хорошо для меня. Я спрашиваю, как определить тип кодировки, узнать, является ли это Base64 или любым другим ... –

+0

Короче говоря, вы не можете.Причина в том, что в зависимости от сценария использования любая строка в данной кодировке может считаться откровенным текстом - думаю документация или злонамеренные злоумышленники. Более того, многие (скорее, наиболее) «кодировки» того типа, который вас интересует, не обеспечивают поток закодированных данных с достаточными характеристиками, чтобы обеспечить обнаружение _reliable_. То, что вы можете сделать, это действительно информированное предположение: определить требуемые/запрещенные свойства потока данных, попытаться декодировать. Тем не менее, все, что вы получаете, это подсказки. Чем больше надежности вам нужно, тем лучше для того, чтобы передать поставщика данных конкретному рабочему процессу. – collapsar

+0

Кажется, вы правы. Но может быть, есть какая-то программа, которая получает мои данные и запускает ее по всему типу кодирования, например Base64, если результат прав или неправильный, не имеет значения, просто распечатайте то, что выйдет. Знаете ли вы что-нибудь подобное? –

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