私はベース64のエンコードされた値を持っています。デコードされた値のエンコーディングを知らずに、この値を使ってデコードされた値の長さを知りたいと思います。デコードされた値のエンコーディングを知らなくても、base64でエンコードされた値の長さを判断する方法はありますか?
たとえば、「foo」のベース64エンコード値は、Zm9vです。このようにデコードすると:
var bytes = Convert.FromBase64String("Zm9v");
私は3バイトの配列を取得します。この場合、私は簡単に3ような長さを決定しますが、我々はベース64に「= w7w」である値として「ü」を持っているとしましょうことができます。
// length = 2
var bytes = Convert.FromBase64String("w7w=");
バイト配列の長さを一般的に再び使用されるが、私はこれがUTF8
として働くだろうと思います
var lenght = Encoding.UTF8.GetString(bytes).Lenght;
:最初のソリューションが失敗したので、私は考えて、他のオプションはUTF8
エンコーディングを使ってバイトから文字列を取得し、長さを取得することで、2
です私は快適ではないwこの解決法のいずれか。これについてどうすればいいですか?最初の価値のコード化を知らなくても、これに対する一般的な解決策を見つけることは不可能でしょうか?その後、代わりにバイトの長さを得るための
しかし、あなたはエンコーディングを知らなくても、任意のバイト配列をデコードすることができれば、あなたは、本質的に求めています。 – Evk