cp932 のバイト列
次のコードを実行したときの出力として、正しいものを1つ選べ。
print("あ".encode("cp932"), "あ".encode("utf-8"))
- A
b'\xe3\x81\x82' b'\x82\xa0' - B
b'\x82\xa0' b'\xe3\x81\x82' - C
b'\x82\xa0' b'\x82\xa0' - D
b'\x30\x42' b'\xe3\x81\x82'
正解と解説を見る
正解:B
同じ文字でも、文字コードによってバイト列が違う。ファイルを開くときの encoding が、実際の文字コードと違うと、文字化けや UnicodeDecodeError になる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print("あ".encode("cp932"), "あ".encode("utf-8"…` | — |
| 結果 | 実際の出力 | b'\x82\xa0' b'\xe3\x81\x82' |
- A
誤り。cp932 と UTF-8 が逆。
- B
正しい。cp932 では 2 バイト、UTF-8 では 3 バイト。同じ文字でも、バイト列が異なる。
- C
誤り。UTF-8 では 3 バイト。
- D
誤り。0x3042 は Unicode のコードポイント。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。