変換できない文字
次のコードを実行したときの出力として、正しいものを1つ選べ。
print("a😀".encode("cp932", errors="ignore"), "a😀".encode("utf-8"))
- A
b'a\xf0\x9f\x98\x80' b'a' - B
b'a?' b'a\xf0\x9f\x98\x80' - C
b'a' b'a\xf0\x9f\x98\x80' - D
UnicodeEncodeError
正解と解説を見る
正解:C
encode・decode の errors は、strict(例外)、ignore(除去)、replace(置換)。cp932 で書き出すと、絵文字などは扱えない。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print("a😀".encode("cp932", errors="ignore"), …` | — |
| 結果 | 実際の出力 | b'a' b'a\xf0\x9f\x98\x80' |
- A
誤り。cp932 と UTF-8 が逆。
- B
誤り。
errors="replace"なら?になる。ignoreは取り除く。 - C
正しい。cp932 で表せない文字は、
errors="ignore"で取り除かれる。UTF-8 では 4 バイトで表せる。 - D
誤り。
errors="ignore"を指定している。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。