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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

3回答

10020閲覧

pythonの複数行コメントで日本語を使うとエラーになる

tetsutail

総合スコア81

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2016/08/29 14:20

編集2016/08/29 15:49

python3.5.2を使っているのですが、

python

1#! coding: utf-8 2#日本語(これはエラーにならない) 3''' 4日本語(これはエラー) 5'''

という風に書くと、
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x8e in position 0: invalid start byte
とエラーになってしまいます。
なぜ、複数行コメントの際だけエンコードできないというエラーが出るのでしょうか?
また、これを解決する方法はあるのでしょうか?
また、エディタはgvimを使っています。

###追記(8/30 0:17)
みなさま、回答ありがとうございます。
gvimのコマンドモードで
:set fenc=utf-8
とすることでエラーなくできるようになりました。
どうやら、ファイルがutf-8で保存されていなかったようです。
ただ、これだと複数行コメントを使うときは必ず
:set fenc=utf-8としなければいけないので不便です。
_gvimrcファイルに
set fileencodings=utf-8
と追加することで文字コードを固定できると思い、やってみたのですが、できませんでした。
うまく毎回自動的にutf-8形式でファイルを保存できるような方法を知っていたら教えていただきたいです。

#追記(8/30 0:48)
_gvimrcにset fileencoding=utf-8としたらできました。sが余計に入っていたようです。

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

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

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

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

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

guest

回答3

0

ベストアンサー

IDEONE
エラーにならず実行できました。

挙げられたエラーメッセージを見ると、「UTF8 では最初のバイトに 8e があってはならない」とあるので、この不正なデータが紛れ込んでいるのが原因と思われます。

8e というのは、EUC-JP に於いて半角カナを表すものですから、可能性としてはそのファイルが UTF-8 ではなく EUC-JP で保存されていて、なおかつ半角カナが使用されているのではないかと推測されます。
ファイルのエンコードが本当に UTF8 になっているかどうか確かめてみてください。

投稿2016/08/29 14:44

Zuishin

総合スコア28656

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

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

0

文字コードがUTF-8以外になっていないでしょうか?コーディングをUTF-8に指定しているため、UTF-8以外の文字コードの場合、エラーになる場合があります。ファイルの文字コードを確認してみてください。

なお、'''は複数行コメントに利用できるだけで、実際は複数行文字列として認識されるため、文字コードが正しくないといけません。

投稿2016/08/29 14:40

raccy

総合スコア21733

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

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

0

こんな感じでどうスか

Python

1#! coding: utf-8 2#日本語(これはエラーにならない) 3u''' 4日本語(これはエラー) 5'''

投稿2016/08/29 14:36

takasima20

総合スコア7458

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

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

tetsutail

2016/08/29 15:17

回答ありがとうございます。 ただ、僕の場合、これではできませんでした・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問