windows系统上,emacs orgmode下gnuplot-mode画出的图中文乱码

windows系统上,emacs orgmode下gnuplot-mode画出的图不支持中文,中文显示乱码。macOS上,通过gnuplot的"set font"指定支持中文的字体文件就可以。但是,在windows上,通过gnuplot的"set encoding"指定编码、通过"set font"指定字体都试过,还是不行。有人在win下的gnuplot可以画出支持中文的图吗?求指教

#+begin_src gnuplot :file ./img/asdf.png :encoding utf8 :export result
  set term png font 'C:\Windows\Fonts\simsun.ttc,10'
  set samples 500
  set xlabel "横坐标"
  set ylabel "纵坐标"
  plot sin(5*x)
#+end_src

macOS正常,windows上无法显示中文(中文乱码)。

命令行里面运行一下命令 chcp,可以得到当前Windows的编码,我记得中文locale一般是936,对应cp936,可以试下指定编码为gbk或者gb18030.

ob-gnuplot.el 里提供了 :encoding 的选项吗, 我在ob-gnuplot.el\lisp - emacs/org-mode.git - Emacs Org mode 上面并没有看到, 同时在 emacs 里查看 “*gnuplot*” buffer, 也没有看到 set encoding 语句出现

我这边用gnuplot 6.0.1试了一下好像中文是正常的:

test

你可以试试M-x set-language-environment然后输入UTF-8(或者设置current-language-environment为UTF-8),有可能是导出的文件不是UTF-8编码。

我这边试了下,chcp显示编码是936。不过,set encoding gbk之后,还是不行,一样是乱码。

执行M-x set-language-environment设置为UTF-8之后,就可以支持中文了(无需指定字体和编码等),如下。

#+begin_src gnuplot :file ./img/asdf.png :export result
  set term png
  set samples 500
  set xlabel "横坐标"
  set ylabel "纵坐标"
  plot sin(5*x)
#+end_src

感谢!