デコードの誤りを置き換える
次のコードを実行したときの出力として、正しいものを1つ選べ。
b = b"caf\xc3\xa9"
print(len(b), len(b.decode("utf-8")), b.decode("utf-8"))
- A
4 4 café - B
5 5 café - C
5 4 café - D
4 5 caf
正解と解説を見る
正解:C
バイト列の長さと文字列の長さは異なる。UTF-8 では、ASCII 以外の文字が 2〜4 バイトになる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `b = b"caf\xc3\xa9"` | b = b'caf\xc3\xa9' |
| 2 | `print(len(b), len(b.decode("utf-8")), b.decod…` | b = b'caf\xc3\xa9' |
| 結果 | 実際の出力 | 5 4 café |
- A
誤り。バイト数は 5。
- B
誤り。文字数は 4。
- C
正しい。UTF-8 では「é」が 2 バイトなので、バイト数は 5、文字数は 4。
- D
誤り。文字数とバイト数が逆。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。