5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Sublime Text でビルドしたときの文字化け問題(Windows のみ)

Last updated at Posted at 2019-03-23

はじめに

普段のエディタは vimなんですが、ちょっとした作業や誰かと画面を共有するときは Sublime Text を使用しています。

この前、初めてSublime Text の Build Systems を使ったのですが、そのときに日本語の文字化けが発生したので、その解決方法を調べました。

環境

  • Sublime Text 3 Build 3200
  • Windows 10

事象

日本語を含む Kotlin ソースをビルドして、実行すると文字化け発生。Build には Kotlin のパッケージを使用。

image001.png

解決方法

  1. PackageResourceViewer のパッケージをインストール
  2. コマンドパレットを開いて、PckageResourceViewer:Open Resource を実行
スクリーンショット 2019-03-23 20.54.55.png 3. `Default` - > `exec.py` と開く 4. `ExecCommnad` class の `run` メソッドの `encoding` 引数のデフォルト値を `cp932` に変更し上書き保存(189行目付近) 5. `C:\Users\<ユーザー名>\AppData\Roaming\Sublime Text 3\Packages\Default` に先程保存した `exec.py` が存在することを確認 ![image003.png](https://qiita-image-store.s3.amazonaws.com/0/96666/c668a20f-6aa6-de40-5d07-402c86f81d43.png) 6. Sublime Text に戻ってビルドを行うと日本語が表示されていることがわかります! ![image004.png](https://qiita-image-store.s3.amazonaws.com/0/96666/dffdf736-e636-a8d3-9b49-ef1d25747c8b.png)

その他の解決方法と原因の考察

今回は、exec.py の編集で対応しましたが、以下のように新しいビルドシステムを新規に追加して、"encoding": "cp932" と設定する方法もあります。

Sublime Text3のPythonビルドで日本語出力できない問題と、Python2、3ビルド切り替え |  みろりHP 

しかし、これではデフォルトで準備されているビルドシステムをすべて置き換える必要があるため、今回は本記事の方法を採用しました。

解決方法の参考にしたのは、以下の記事です。

subprocess.run(..., stdout=subprocess.PIPE)で日本語を含む場合のメモ(文字コード判定) - Qiita

exec.py の中にも、subprocess.run(..., stdout=subprocess.PIPE) を使用している部分があったため、同じ原因だろうと予想しています。もう少し、ちゃんとPython のコードが読めるようになりたい...。

終わりに

今回は、Sublime Text の文字化けの対応をしてみました。Windows では cp932 がまだまだ使われており、Mac や Linux と同じようにうまくは行かないな...と実感しました。

Python もまだまだ理解できていない部分もあるので、引き続き勉強したいと思います。

5
1
1

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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?