在 windows 下使用 pt 搜索中文乱码

在 winodws 下使用 pt 进行搜索(Spacemacs 默认的 SPC s t p 和 SPC s t b 等),如果搜索目标是英文,可以得到正确结果:

但是如果搜索中文,则完全没有任何效果:

多次尝试猜测应该是编码问题,使用中文搜索可以得到结果,不过得到的是搜索目标 GBK 编码的结果:

使用 (set-language-environment “chinese-gbk”) 修改编码可以使中文搜索获得正确的结果,不过显示结果是乱码:

对 emacs 的编码系统不太熟,有没有什么办法可以正常使用中文搜索,显示结果也不会乱码?

Linux下你的问题没有重现。不过我设置了环境变量 export LC_CTYPE=zh_CN.UTF-8, 不知道是否跟这个有关。

我在 Linux 下一样的配置试过,没有问题。这个问题只出现在 Windows 下,应该跟 Windows 的编码有关。

同样的问题,在Windows下只能搜索英文,希望有朋友解决这个问题

偶然翻到了这个帖子,用自己的配置试了一下,发现没有这个问题,应该是已经被我解决了_(:зゝ∠)_

  ;; 设置编码
  (cond
   ((spacemacs/system-is-mswindows)
    ;;
    (set-language-environment "chinese-gbk")
    (prefer-coding-system 'utf-8)
    (set-terminal-coding-system 'gbk)
    ;;
    (modify-coding-system-alist 'process "*" 'gbk)
    (defun liu233w/windows-shell-mode-coding ()
      (set-buffer-file-coding-system 'gbk)
      (set-buffer-process-coding-system 'gbk 'gbk))
    (add-hook 'shell-mode-hook #'liu233w/windows-shell-mode-coding)
    (add-hook 'inferior-python-mode-hook #'liu233w/windows-shell-mode-coding)
    ;;
    (defun liu233w//python-encode-in-org-babel-execute (func body params)
      "org-babel 执行代码时不会自动编码文件,这里通过动态作用域覆
盖默认选项来编码文件。"
      ;; 此问题的详细信息请参考:https://github.com/Liu233w/.spacemacs.d/issues/6
      (let ((coding-system-for-write 'utf-8))
        (funcall func body params)))
    (advice-add #'org-babel-execute:python :around
                #'liu233w//python-encode-in-org-babel-execute))
   ;; --
   (t
    (set-language-environment "UTF-8")
    (prefer-coding-system 'utf-8)))

see 解决 Emacs 的 Python 交互执行环境在 windows 下无法显示中文的问题 - #3,来自 Liu233w

你图中使用的是 ag 进行搜索的啊,使用你的配置 pt 搜索中文仍然乱码:

不过我根据你的回答去下了个 ag 测试了下,发现 ag 不用改任何配置搜索中英文都是正常的:

以后 Windows 下就用 ag 了,也算是解决这个问题了 _(:зゝ∠)_ ,也谢谢你的回答了 ( •̀ ω •́ )y

眼花了,没看清题目,真是尴尬_(:зゝ∠)_