質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

Q&A

2回答

10349閲覧

UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 60

qqq

総合スコア8

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

0グッド

0クリップ

投稿2016/01/11 09:25

Pythonのフレームワークであるpyramidにpyramid_mongoengineを組み入れてWebページを作成しようとしています。まずは入力したコードでブラウザにちゃんと表示するかテストしたところ、ブラウザには以下のような文言が出ました。

Internal Server Error

The server encountered an unexpected internal server error

(generated by waitress)

そしてコマンドプロンプトでエラーの内容が出てたので見ると、

UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 60 invalid start byte

と出ていました。文頭に 「# -- coding: utf-8 --」 を入れても解消されないし、エラーの内容を調べても「60バイト目の0x91(漢字を表す)を元のデータに戻せない」とあるが、そもそも漢字がコードにないので、どう解決するか詰まってしまいました。

何かお知恵を拝借できれば幸いです。
宜しくお願い致します。

使っている環境 windows8.1
virtualenvコマンドからプロジェクトを生成
python2.7.10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

このエラーは、何かしらの文字列(basestring)を、UTF-8でUnicode化しようとしてエラーが発生しています。
予想するに、Unicode文字列を、再度Unicode化しているのではないでしょうか?

エラーの該当箇所のソースコードを提示いただければ、より具体的に回答できると思います。

投稿2016/01/12 06:04

terapyon

総合スコア313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qqq

2016/01/12 13:26

お返事ありがとうございます。 まずはコマンドプロンプトに出ているエラーです。 File "C:\Users\Yuichi\mypyramid\lib\encodings\utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 60: invalid start byte 次にエラーの対象と思われる実際のソースコードです。これはpyramidのvirtualenvコマンドで生成されたファイルです。 ./Lib\encodings\utf_8.py → ファイルがあるパス 以下が対象ファイルのコード """ Python 'utf-8' Codec Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. """ import codecs ### Codec APIs encode = codecs.utf_8_encode def decode(input, errors='strict'): return codecs.utf_8_decode(input, errors, True) class IncrementalEncoder(codecs.IncrementalEncoder): def encode(self, input, final=False): return codecs.utf_8_encode(input, self.errors)[0] class IncrementalDecoder(codecs.BufferedIncrementalDecoder): _buffer_decode = codecs.utf_8_decode class StreamWriter(codecs.StreamWriter): encode = codecs.utf_8_encode class StreamReader(codecs.StreamReader): decode = codecs.utf_8_decode ### encodings module API def getregentry(): return codecs.CodecInfo( name='utf-8', encode=encode, decode=decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamreader=StreamReader, streamwriter=StreamWriter, )
terapyon

2016/01/15 03:13

これは、Python本体に付属するソースコードですよね? トレースバックというエラースタック(数十行が流れてくる物)は出ていませんか? その中に、エラーのヒントがあると思います。 UnicodeDecodeErrorが出たのは、ご指摘の場所ですが、その原因を作ったのはなにかしらでdecodeしている部分です。
guest

0

そのウェブペジの<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>」を加えてみましょう。

投稿2016/01/11 10:01

GikgeStephano

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qqq

2016/01/12 13:28

お忙しいところ、ご回答ありがとうございます。 申し訳ありませんが、以下のようにしてみても、同じエラーが返されました。 /templates/form/index.jinja2 <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Hello</title> </head> <body> <h1>Hi {{ value }}</h1> </body> </html>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問