[解決済み] UnicodeEncodeError: 'latin-1' コーデックは文字をエンコードできない
質問
データベースに外字を挿入しようとすると、このエラーが発生する原因は何でしょうか。
>>UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256)
そして、どのように解決すればいいのでしょうか?
ありがとうございます。
どのように解決するのですか?
文字 U+201C 左ダブルクォーテーション記号は Latin-1 (ISO-8859-1) エンコーディングには存在しません。
それは は は、コードページ 1252 (西ヨーロッパ) に存在します。これは Windows 固有のエンコーディングで、ISO-8859-1 に基づいていますが、0x80-0x9F の範囲に余分な文字を配置します。コードページ1252はしばしばISO-8859-1と混同され、ページをISO-8859-1として提供すると、ブラウザはそれを代わりにcp1252として扱うという、迷惑なことですが今では標準的なウェブブラウザの動作になっています。しかし、これらは実際には 2 つの異なるエンコーディングです。
>>> u'He said \u201CHello\u201D'.encode('iso-8859-1')
UnicodeEncodeError
>>> u'He said \u201CHello\u201D'.encode('cp1252')
'He said \x93Hello\x94'
データベースをバイトストアとしてのみ使用する場合、cp1252を使用してエンコードすることができます。
“
といった Windows ウエスタン コード ページに存在する文字をエンコードできます。しかし、cp1252 に存在しない他の Unicode 文字は、依然としてエラーの原因となります。
を使用することができます。
encode(..., 'ignore')
を使って、文字を取り除くことでエラーを抑制することができます。しかし、実際にはこの世紀には、データベースとページの両方でUTF-8を使用すべきです。このエンコーディングでは、どんな文字でも使用することができます。また、理想的には MySQL に UTF-8 文字列を使用していることを伝えるべきです (データベース接続と文字列列の照合順序を設定することによって)。
関連
-
[解決済み] UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonでstdoutをパイピングするときに正しいエンコードを設定する
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MySQLのutf8mb4とutf8 charsetsの違いは何ですか?
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] pycharmがタブをスペースに自動変換する