链接中的中文编码问题

大家好,遇到一个关于文件编码的奇怪问题,跟大家请教一下。

以前创建的中文文件链接 都是 以:[[file:literatures/%E5%9B%B0%B4.pdf]] 的方式存储的。

但是,最近系统升级后,文件编码方式发生了变化,直接使用中文编码了。

这样以前存储的链接打不开了。

这种情况该如何解决呢?

谢谢大家!

1 个赞

是不是可以写一个转换函数,遇到的话就将连接转化过去?

目前还不知道如何实现。但是,不确定新的orgmode为何会有这样的转换。但是,没有查到相关的开关变量。

去翻org-mode的邮件列表archive,我见证了这个转换,当时还问维护者要了一个函数进行替换。这样的变更是需要的,不然旧的太糟糕了,越早换越好。

1 个赞

那请问这种情况,最好的解决方案就是是将文件中旧的链接编码改掉呗?

请问你是如何处理的呢?我在网上差资料目前没有查到合适的方法。实在不行,只能自己写程序处理了。 :flushed:

我是从spacemacs转到doom时遇到这种情况,记得当时是用正则式匹配后查找替换的。

写代码,重新把encode再转回来。然后替换,然后用wgrep搜索替换。

1 个赞

好吧。我在尝试写python处理。谢谢。

这个写elisp实现起来不是更简单么?

这是url百分比编码,如果你的文件用浏览器打开,不需要转码,浏览器会自己转,elisp我只知道将文本做百分比编码,是 (url-encode-url "中文.pdf"),因为在win10 emacs shell-mode中执行的命令不支持中文参数,于是就模仿浏览器也这么传中文参数,收到中文参数的程序在转回来, 但如何在elisp中把url编码的文本转回来就不知道了,elisp没有对应的url-decode-url

参考 http://ergoemacs.org/emacs/elisp_decode_uri_percent_encoding.html

1 个赞

这个不会呢 :stuck_out_tongue_closed_eyes: python顺手就用python实现了。

我发现逐行 转换好像就可以解决大部分问题。 但是,如果存在链接中嵌套链接的问题,就会比较麻烦了。特殊问题特殊处理吧。

谢谢。你的信息。

从25.3升级的27.1,我也碰到这个问题了。

我有几个工作文件中创建了大量的互相链接用于相互跳转。出现这个问题就很不方便了。 请问有什么方便的解决方法吗?