0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonの便利技と注意点:PyCharm編

Last updated at Posted at 2024-05-13

目次に戻る

Windowsにて日本語を扱う時の技

subprocessでWindowsのコマンドを使うと文字化けする
import subprocess

subprocess.run('dir', shell=True)
=================================
# 出力結果 ※パス・ファイル名・日付・バイト数などは脚色してあります
 h���Cu C �̃{�����[�� ���x��������܂���B
 {�����[�� V���A���ԍ��� 5882-3E25 ł

 C:\Users\<username>\PycharmProjects\pj �̃fB���Ng��

2024/05/14  00:48    <DIR>          .
2024/05/14  00:48    <DIR>          ..
2024/05/11  00:31             2,147 main.py
2024/05/12  15:43             1,139 test.py
2024/05/14  00:48                 4 test.txt
               3 �‚̃t@C��              24,937 oCg
               2 �‚̃fB���Ng��  776,319,602,688 oCg�̋󂫗̈�

これは、PyCharmにおけるコーディングの文字コードが「UTF-8」、Windowsの文字コードが「Shift-JIS」に設定されていることで、Windows側でUTF-8により書かれた文字列を変換できないことで発生する、と推測される。

したがって、この箇所を「UTF-8」から「ShiftJIS」に変更することで解消する

image.png

image.png

※「ShiftJIS」はプルダウンの「その他」から選ぶことができる

ShiftJISでエンコーディングすれば文字化けが解消する
import subprocess

subprocess.run('dir', shell=True)
=================================
# 出力結果 ※パス・ファイル名・日付・バイト数などは脚色してあります
 ドライブ C のボリューム ラベルがありません
 ボリューム シリアル番号は XXXX-XXXX です

 C:\Users\<username>\PycharmProjects\pj のディレクトリ

2024/05/14  00:48    <DIR>          .
2024/05/14  00:48    <DIR>          ..
2024/05/11  00:31             2,147 main.py
2024/05/12  15:43             1,139 test.py
2024/05/14  00:48                 4 test.txt
               3 個のファイル              24,941 バイト
               2 個のディレクトリ  776,316,506,112 バイトの空き領域

ところがこの状態で、新たにpyファイルを作成して日本語出力しようとするとエラーを出力する

ShiftJIS設定のまま日本語を出力しようとするとエラーとなる
print("日本語")
==============
# 出力結果
SyntaxError: Non-UTF-8 code starting with '\x93' in file C:\Users\<Username>\PycharmProjects\pj\test.py on line 1, but no encoding declared; see https://peps.python.org/pep-0263/ for details

# -*- coding: utf-8 -*-を冒頭に宣言すると解消する

utf-8でコーディングする、という宣言を加えるとエラーが出なくなる
# -*- coding: utf-8 -*-
print("日本語")
=======================
# 出力結果
日本語

目次に戻る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?