に。 C#
以下のクラスを使用してエンコードを実行できます。
System.Text.Encoding.UTF8
_System.Text.Encoding.UTF16
_System.Text.Encoding.ASCII
__System.Text.Encoding.Base64
_がないのはなぜですか?
Convert.From(To)Base64String
メソッドしか使用できません。base64の特別な点は何ですか?
Base64はUTF-8と同じエンコード方法だと言えますか?または、UTF-8はbase64の1つですか?
UTF-8およびUTF-16は、Unicode文字列をエンコードする方法ですバイトシーケンス。
参照: すべてのソフトウェア開発者が絶対的かつ積極的にUnicodeと文字セットについて知っておくべき絶対的な最小値(言い訳なし!)
Base64は、バイトシーケンスを文字列にエンコードする方法です。
したがって、これらは大きく異なる概念であり、混同しないでください。
留意すべきこと:
すべてのバイトシーケンスがUTF-8またはUTF-16でエンコードされたUnicode文字列を表すわけではありません。
すべてのUnicode文字列がBase64でエンコードされたバイトシーケンスを表すわけではありません。
Base64はbinaryデータをエンコードする方法ですが、UTF8とUTF16はUnicodeテキストをエンコードする方法です。 Python 2.x、バイナリデータと文字列が混在しているような言語では、同じ方法で文字列をbase64またはutf8にエンコードできます。
u'abc'.encode('utf16')
u'abc'.encode('base64')
しかし、2種類のデータがより明確に分離されている言語では、データを表現する2つの方法には一般にまったく異なるユーティリティがあり、懸念を区別します。
UTF-8は他の TFエンコーディング のようなものです nicode文字セットUCS の文字をエンコードする文字エンコーディング。
Base64 は、印刷可能な文字のシーケンス(つまり、A
–Z
、a
–z
、0
–9
、+
、および/
)。
Base64はnottext encoding
であるため、System.Text.Encoding.Base64はありません。むしろ hexadecimal のようなベース変換で、0
–9
とA
–F
(またはa
–f
)を使用して数値を表します。
簡単に言えば、UTF8やUTF16などの文字エンコードは、数字、つまりバイトを文字に、またはその逆に一致させるのに便利です。たとえば、ASCII 65は "A"に一致しますが、エンコードは主にバイトをバイトに変換するために使用されるため、単一バイトから変換された結果のバイトは印刷可能で、ASCII文字エンコードのサブセットです。そのため、Base64はバイトからテキストへのエンコーディングメカニズムBase64を使用する主な理由は、バイナリデータ転送が許可されていないチャネルを介したデータの送信であるため、ストリームを表示するBase64でエンコードされたストリームを使用できることは明らかです。 UTF8エンコード。