不正なマルチバイトシーケンスがあるらしい
現在,pythonでシステムを実装中です.
文字コードは都合上shift-jisを使わなくてはならない状況なのですが,実行の際以下の様なエラーが出てしまい先に進むことができません.
実現したいこと
単純に,実行完了を目指しています.
マルチバイト文字については明るくないためか,調べても解決には至りませんでした.
発生している問題・エラーメッセージ
(unicode error) 'shift_jis' codec can't decode byte 0x87 in position 3537: illegal multibyte sequence
該当のソースコード
python
1for i in range(0, (len(frame) - 1), 1): 2 if judge(edge[0], edge[1], frame[i][0], frame[i][1]): 3 if judge(edge[0], edge[1], frame[i + 1][0], frame[i + 1][1]): 4 edge[0] = [frame[i][0], frame[i][1]] 5 edge[1] = [frame[i + 1][0], frame[i + 1][1]] 6 break
試したこと
元々は正常に動いており,下の方に別の操作を書き足していくうちにこのエラーが出たように感じたので,操作を一つ一つコメントアウトしてどこが原因か探ろうとしたのですが,結局どこか解明することはできませんでした.
原因の究明に必要なその他の情報があれば,コメントしていただけると幸いです.
エラーメッセージのところ、
(unicode error)
で行が始まっていますが、ここは本当に丸括弧で括られていてunicode errorと全部小文字で出ているのでしょうか。
このエラーの他にTracebackは出てないですか。
コメントありがとうございます.
以下,エラーの全文になります.
C:○○.py
File "C:\○○.py", line 223
edge[0] = [frame[i][0], frame[i][1]]
SyntaxError: (unicode error) 'shift_jis' codec can't decode byte 0x87 in position 3537: illegal multibyte sequence
例外処理としての記述はしていないので,tracebackのインポート等は行っていませんがコンソールに表示されているものはこれで全てになります(ファイル名やパスなどは少し変わっていますが)
このエラーではif文の二つ目がエラーの対象となっていますが,すると前後の行でエラーになる為,この文自体に問題があるわけではないとも思われます.
おそらく実行データではなくソースコードのエンコーディングの問題だと思われます。
Pythonバージョン(2.7系ではないか)、OSなど実行環境
ソースコードのエンコーディングおよび先頭行でのエンコーディング指定の有無(# coding: shift_jisなどのこと)
を記載ください。
'shift_jis'の代わりに'cp932'を指定するとどうなりますか
SyntaxError と表示されていますので、222 行目辺りに Shift JIS としては不正な文字が混入しているのではないでしょうか。
今回のこのコードは,jw_cadというcadソフトの外部変形という拡張機能の一部となっています.
そのため,システム自体はpyhtonで記述しているのですが,文字コードは規格の問題でおそらくshift-jisしか受け付けていない(SyntaxError: encoding problem: Shift_JIS)という形になると思います.
一応,先頭行でのエンコーディングの宣言はなく,pythonのバージョンは3.10.7です.
回答1件
あなたの回答
tips
プレビュー