質問

私はさまざまなエンコーディングでさまざまな文字列がどのように見えるかを見ようとしています...

例えば:

>>> str1 = "asdf"
>>> str1.encode('utf-16')
'\xff\xfea\x00s\x00d\x00f\x00'
>>> str1.encode('base64')
'YXNkZg==\n'

そして、それらはすべて私が欲しいものを私に手に入れます。

しかし、GBK、GB2312、またはGB18030で特定の文字列がどのように見えるかを見たいです。

>>> str1.encode('gbk')
'asdf'
>>> str1.encode('gb2312')
'asdf'
>>> str1.encode('gb18030')
'asdf'

出力は「ASDF」以外のものではないでしょうか?

私はpython 2.7を持っています、そして私はlib/encodingsでgbk.pyと他のファイルを見ることができます

それらの文字がそのエンコードに同じように表示されるのか、それともそれらのエンコーディングの使用を何らかの形で有効にする必要があるため、私は出力に変化がないかどうか疑問に思っていました(何らかのインポートが必要ですか?)...

役に立ちましたか?

解決

バイト値0-127のみが使用されている限り、これらのエンコーディングはASCIIと同等です。同じことがUTF-8にも当てはまります。本当に違いを見るために、実際の中国人で試してみてください。

他のヒント

から ウィキペディアページ:

文字は1バイトまたは2バイトとしてエンコードされます。 00〜7Fの範囲のバイトは、ASCIIと同じことを意味する単一バイトです。厳密に言えば、この範囲には96文字と32の制御コードがあります。

いいえ、ASCII文字のテスト文字列は何か違うものとしてエンコードするべきではありません(少なくともGBKではなく、品種をチェックしませんでした)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top