2020年09月12日
python、cgi、sqlite3にてUnicodeEncodeErrorに苦戦、一応、解決
WordPressはきれいだし、
導入も簡単で、
初心者でも本格的なHPやブログを作成できることは、
私も試したから知っています。
でも、なんか、型にはまった感じがつまらなく、
結局、html、css、cgiをできるだけ自分で書き、
ページが表示されたときの感動がうれしいので、
わざわざ苦労して、書いています。
今回、
1 sqlite3のデータベースに入力
2 画像のURLやコメントをpythonで読み込み
3 webに表示する。
の3で苦戦したので、備忘録です。
データベースの3列目(row[2])に入力した全角の日本語(utf-8)が表示できず、二日間苦戦しました。
apache2のerror.logを読むと下記のエラー
UnicodeEncodeError: 'ascii' codec can't encode character
おかしいな〜?
python上で #-*-coding: utf-8-*-
html上で charset=utf-8
を宣言しているのに、なぜエンコードエラーがでるのだ?
ネット内の情報を調べまくりました。
結果的に、必要だったのは上記.cgiの18行目です。
sqlite3nデータベースからpythonで読み込んだ日本語は、
なぜかUnicodeで読み込んでいるので、utf-8とUnicodeでケンカしていたようです。
そこで、18行目に
b=a.encode("utf-8")
を挿入し、sqlite3から読み込んだ全角の日本語を改めてutf-8にエンコードしました。
これによって、日本語がcgiで表示できました。
たどり着くまでに2日かかりました。
導入も簡単で、
初心者でも本格的なHPやブログを作成できることは、
私も試したから知っています。
でも、なんか、型にはまった感じがつまらなく、
結局、html、css、cgiをできるだけ自分で書き、
ページが表示されたときの感動がうれしいので、
わざわざ苦労して、書いています。
今回、
1 sqlite3のデータベースに入力
2 画像のURLやコメントをpythonで読み込み
3 webに表示する。
の3で苦戦したので、備忘録です。
1 | #!/usr/bin/python |
データベースの3列目(row[2])に入力した全角の日本語(utf-8)が表示できず、二日間苦戦しました。
apache2のerror.logを読むと下記のエラー
UnicodeEncodeError: 'ascii' codec can't encode character
おかしいな〜?
python上で #-*-coding: utf-8-*-
html上で charset=utf-8
を宣言しているのに、なぜエンコードエラーがでるのだ?
ネット内の情報を調べまくりました。
結果的に、必要だったのは上記.cgiの18行目です。
sqlite3nデータベースからpythonで読み込んだ日本語は、
なぜかUnicodeで読み込んでいるので、utf-8とUnicodeでケンカしていたようです。
そこで、18行目に
b=a.encode("utf-8")
を挿入し、sqlite3から読み込んだ全角の日本語を改めてutf-8にエンコードしました。
これによって、日本語がcgiで表示できました。
たどり着くまでに2日かかりました。
【このカテゴリーの最新記事】
-
no image
-
no image