How to auto detect a String encoding?

匆匆过客 提交于 2021-02-10 15:38:35

问题


I have a String which contains some encoded values in some way like Base64.

The problem is that I really don't know if it's actually Base64 (there are A-Z, a-z. 0-9, +, /) so it can be some any other code that i'm not familiar with.

Is there a way or any other online site to send him an encoded input and it can tell me in which code is it?

NOTE: I'm not asking how to know if my String is UTF-8 or iso-8859-1 or something like that. What I need is to know in which is my code is encoded.

EDIT:

To be more clear,

I need something to get an input like: 23Nzi4lUE4qlc+Pmc3blWMS1Irmgo3i8UTQHhoL7VyzqpEV/i9bDhoiteZ0a7/TqcVSkrXR89V2Yj7tEFDGJx4gvWEBs= this is the encoded String that I have.

The output should be the type of the encoded String and it's decoding like:

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

Maybe there is some program which get's an input and tries to decode it with a list of coding types (Base64 and etc.). The output doesn't really matter because it's the users decision if it's good or not.


回答1:


This site handles base64 de/encoding.

Since Base64 is just one instance of a class of encoding schemes ( specifically, encoding a bit stream as base_<n> number ), you probably will never fare better than testing for just a couple of standard encoding schemes.

You either check the well-formedness of the encoding scheme or try to decode without getting an error thrown using a web service or your own code.

In (possibly pathological) cases there will be more than one encoding scheme for which a given octet stream will successfully decode.

Best practice would be to take the effort invested into setting up the verification to committing the data provider to one (or 'a few') encoding(s) first (won't always be possible, of course).



来源:https://stackoverflow.com/questions/31158013/how-to-auto-detect-a-string-encoding

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!