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

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

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

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

Q&A

0回答

1591閲覧

Python(2.x)での日本語の一部文字化け

TomoyukiSato

総合スコア16

Python 2.7

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

0グッド

1クリップ

投稿2016/12/11 03:10

編集2022/01/12 10:55

Pythonで簡単なコンソールアプリケーションを作っているのですが、日本語が一部文字化けする端末があり困っています。

現象

PCが2台あり、片方だけで発生している現象です。

コマンドラインで実行するとこんな感じになります。

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print 'ほげ' ほー >>> print 'ふが' ふェ >>> print 'ぴよ' ぴ・ >>> print u'ほげ' ほー >>> import sys >>> sys.getdefaultencoding() 'cp932'

sitecustomize.pysetdefaultencodingしてasciiからcp932に変えてあるのですが、変更前後で現象は変わりません。

同じようにファイルに書いて実行しても

test.py

1# coding: cp932 2print 'ほげ'
>python test.py ほー

同じ化け方をします。
コードページの指定を# -*- coding: cp932 -*-にしても変化ありません。

>>> print('ほげほげ') ほーほげ >>> print('ふがふが') ふェふが >>> print('ふがふがふが') ふェふがふが

試した限りでは2文字目が怪しいように見えます。

>>> print(['ほげ']) ['\x82\xd9\x82\xb0'] >>> print(['ほげほげ']) ['\x82\xd9\x82\xb0\x82\xd9\x82\xb0'] >>> print(['ふが']) ['\x82\xd3\x82\xaa'] >>> print(['ふがふが']) ['\x82\xd3\x82\xaa\x82\xd3\x82\xaa']

文字コード的には問題がないように見えます。

なお、他の言語は、と思って試しましたがRubyは問題ありませんでした。

環境

発生する環境

  • Windows10 Pro x64
  • Windows Insider Program (スローリング) build14965.1001
  • Python 2.7.11 (32bit / 64bitいずれも発生)

発生しない環境

  • Windows10 Home x86
  • Insider Program未参加
  • Anniversary Update未適用
  • Python 2.7.11

両方の環境でそれぞれchcpコマンドを実行すると、いずれも932になります。

どなたかお知恵をお貸しください。よろしくお願いします。

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

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

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

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

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

MasahikoHirata

2016/12/11 09:44

エンコードの指定を’# -*- coding: cp932 -*-’とした場合はどうですか?
sharow

2016/12/11 10:04

可能性は低いですが、両方の環境のコマンドプロンプトで`chcp`と入力して同じコードページになってるか確認してみてください。
TomoyukiSato

2016/12/11 10:08

コメントありがとうございます。`# -*- coding: cp932 -*-`は現象に変化ありませんでした。chcpの結果はどちらも932です。
sharow

2016/12/11 10:14

追記ありがとうございます。ふーむ、謎ですね。。もしかして常に最後の文字だけ化けるのでしょうか?
MasahikoHirata

2016/12/11 10:24

sharowさん。同じく謎ですね。今、同じ現象を海外サイト(日本語使わないから無駄かも)も含めて探しています。因みにTomoyukiSatoさん、昨日もWindows10のアップグレードで私も時間かかりましたが、各マシンのアップグレード処理に違いはありますか?
sharow

2016/12/11 11:17

手元のWindows10 Pro x64のPython 2.7.6では再現しませんでした。2文字目だけおかしくなるとのこと、何かとても深い闇を感じざるを得ません。 ところで発生するPCのWindowsは64bit版なのに「MSC v.1500 32 bit (Intel)」となっていることから32bit版を導入されているのではないでしょうか。原因が分からないまま何か勧めるのもアレなんですが、64bit版のPythonも試してみてはいかがでしょう。
ShinpeiYamamoto

2016/12/30 23:30

print ['ほげ']とか、print ['ぴよ']、またprint ['ぴよ'ぴよ]、print ['ふがふが']等を実行して結果を載せていただけませんか?
ShinpeiYamamoto

2016/12/30 23:35

print ['ぴよぴよ']でした。誤記です。申し訳ない。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問