解決策
- cmd(コマンドプロンプト)でリダイレクト(ファイルを出力)する。
- powerShellで
./実行ファイル名 | Out-File -Encoding utf8 出力ファイル名
VSCode で gnuplot を使う上での注意点
エラーが出る
sample.gp
plot "sample.txt" u 1:2 t "a" w lp, "sample.txt" u 1:3 t "b" w lp
set xlabel "xlabel"
set ylabel "ylabel"
set title "title"
set xzeroaxis
replot
quit
gnuplot を用いてグラフを描写するとき、以下のコマンドを入力する。
gnuplot> load "sample.gp"
このとき以下のようなエラーが出ることがある。
"sample.gp" line 1: warning: Skipping data file with no valid points
"graph.gp" line 1: x range is invalid
エラーの原因
このエラーの原因は、sample.txt
がUTF-16 LE
などのUTF-8
以外の文字コードで保存されていることが原因であった。
なぜUTF-16 LE
で保存されたのか
VSCode を使用している場合、ターミナルとして無意識的に PowerShell を使っていることがある。PowerShell で以下のコマンドを実行してexeファイルを他のファイルに出力すると、なんとUTF-16 LE
で保存されてしまう。
$> sample.exe > "sample.txt"
解決策
最も簡単な解決策として Commmand Prompt にターミナルを切り替えるがある。Commmand Prompt で上のコマンドを実行すると、しっかりUTF-8
で保存される。また,powerShellで以下のようなコマンドを実行することでもUTF-8
で保存される。
./実行ファイル名 | Out-File -Encoding utf8 出力ファイル名
おまけ
ターミナルを切り替える方法
変更履歴
2022/11/22 powerShellから文字コードを指定する方法を追記