47
37

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 3 years have passed since last update.

ArduinoIDEをアップデートしたらVSCodeのArduino出力で文字化け

Last updated at Posted at 2019-05-22

VSCode の Arduino出力が文字化けするようになった

image.png

Windows ArduinoIDE 1.8.7 を 1.8.8 にアップデートしたら発生した。

arduino_debug.l4j.ini を修正する方法(2021/03/10追記)

これまでは次項の「Extension を修正する方法」をしていたが、 Extensionのアップデートのたびに戻ってしまうので調べたら本家のissueにあった方法を試してみた。

C:\Program Files (x86)\Arduino\arduino_debug.l4j.ini
image.png

-Dfile.encoding=UTF8-Dfile.encoding=SJIS に変更する。

ArduinoIDEは UTF8 で出力して、ArduinoExtension では、SJISをUTF8に変換しようよして文字化けしている。これまでは、Extension の 「SJISをUTF8に変換」処理をコメントアウトして対処していた。これを ArduinoIDE を SJIS で出力して、Extension で SJISをUTF8に変換 をそのままさせるように。※無駄っちゃー無駄だね。

なお、アクセス権がなくて修正ができない場合は、ファイルのプロパティを開いて、セキュリティ>編集>Users(・・・)を選択>フルコントロール>チェックON
image.png
ざっと確認して、ArduinoIDEとVSCodeの出力は上手くいっているようだった。もし問題があるようなら、上記をもとに戻して、次項の「Extension を修正する方法」にしてください。その際、コメント頂けると助かります。

※2021/04/13追記
ArduinoIDEを 1.8.12 → 1.8.13 にしたところ、arduino_debug.l4j.ini が初期化されてしまいました。上記をもう一度設定することで直ります。
また、これは私だけかもしれませんが、ESP32のボードマネージャの表示がされなくなりました。ESP32用のボードマネージャの設定をし直したら表示されるようになりました。

Extension を修正する方法

しばらく放っておいたが 1.8.9 になっても直らないんでググった。

Arduino for Visual Studio Code出力の文字化け対策

原因は色々あるみたいだが今回は、ArduinoIDE をアップデートしたら発生したと思うのでArduinoIDE側の出力が変わったと思われます。
しかし、取り敢えずの対応は VSCodeのArduino Extension を修正してしまおうと言うものだと思う。具体的には下記ソースの

変更:2019.06.24
0.2.25→0.2.26
変更:2019.07.17
0.2.26→0.2.27
変更:2020.02.09
0.2.27→0.2.29
変更:2020.03.27
0.2.29→0.3.0
変更:2020.10.16
0.3.0→0.3.2
変更:2021.03.30
0.3.0→x.x.x

「x.x.x」は arduino Extension のバージョン

C:\Users\%username%\.vscode\extensions\vsciot-vscode.vscode-arduino-x.x.x\out\src\common\util.js

の 205行目辺りをコメントアウトする。

/*
        if (os.platform() === "win32") {
            try {
                const chcp = childProcess.execSync("chcp.com");
                codepage = chcp.toString().split(":").pop().trim();
            }
            catch (error) {
                outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
                \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
                codepage = "850";
            }
        }
*/

#直ったッ

image.png

今後は、Arduino Extension 側の正式対応になるんかな?

以上。

47
37
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
47
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?