Windows 下emacs,Google translate插件安装之后,翻译的buffer为乱码。该怎么设置。

;;google translate
(use-package google-translate
:ensure t
:config
(when (and (string-match "0.11.18"
(google-translate-version))
             (>= (time-to-seconds)
		 (time-to-seconds
                  (encode-time 0 0 0 23 9 2018))))
    (defun google-translate--get-b-d1 ()
      ;; TKK='427110.1469889687'
      (list 427110 1469889687))))

(setq google-translate-base-url
      "http://translate.google.cn/translate_a/single")
(setq google-translate-listen-url
      "http://translate.google.cn/translate_tts")
(setq google-translate-backend-method 'curl)
(setq google-translate-default-source-language "en")
(setq google-translate-default-target-language "zh-CN")

编码问题,改为utf-8就可以了

;;(setq google-translate-backend-method 'curl)

我把这句注释掉之后,就没有乱码了,其实我不太懂emacs lisp,都是抄别人的配置。

你Windows下又没有安装curl,就不要指定backend了

cmd有安装curl哦,不过我我不知道设置了那个有什么用。

image

另外,你的设置少了一行

  (setq google-translate--tkk-url "http://translate.google.cn/")

默认取ttk地址是http://translate.google.com 不改这个地址的话执行的时候可能会卡住

windows下执行命令默认用的是地区特定的编码,比如简体中文系统就默认使用GBK。Emacs里是默认统一使用UTF-8。然后直接读取按GBK编码启动的进程返回的数据就会乱码

不知道Windows能把默认编码改成utf-8不?

如果你用Windows10,并且足够新,可以开启体验功能

是的啊,我刚装的时候提示有tkk的错误,看到Git有人提出下面那个解决办法,然后就好了。现在经过你一说,我才知道问题出在哪里。

(use-package google-translate
  :ensure t
:config
(when (and (string-match "0.11.18"
(google-translate-version))
             (>= (time-to-seconds)
		 (time-to-seconds
                  (encode-time 0 0 0 23 9 2018))))
    (defun google-translate--get-b-d1 ()
      ;; TKK='427110.1469889687'
      (list 427110 1469889687)))
)

这样你给你一说,我就反应过来来了。thank you!

我一开始看到乱码都没有反应过来,经过你们这么讲解之后,我现在明白了,thank you!