emacs25.1 org2blog 发布中文出错问题

使用 org2blog 发布博客时,提示出错信息如下:

error in process sentinel: url-http-create-request: Multibyte text in HTTP request: POST /xmlrpc.php HTTP/1.1

依次排查了以下可能的原因

  • 网络代理
    • 换成全局代理 podvpn,还是无法正常发布。
    • 使用 linode 上的 emacs,把 blog 文件复制过去,也无法正常发布。
  • wordpress 设置

    早上刚安装了 Disable comments 插件,该插件会禁用 ping 功能,会不会与此相关。麻烦的是,该插件写数据库,并且删除插件时不还原数据库,所以只能对整个 wordpress 进行还原。刚好前两天有个备份,花了点时间,可以正常还原。但问题还在。

  • emacs 插件升级

    将 emacs packages 还原到最后一个备份,不能解决问题。

  • 其它线索
    • linode 和 dell 电脑上的 emacs 无法正常发布 blog,但是 x200 上的 emacs 可以正常发布 blog。
    • 在出错信息中,中文被转换成了 unicode 数字形式。
    • 发布的博客中,如果没有中文,可以正常发布。

最后,从 github org2blog 官方问题列表中,搜到了 Issue 223 。该问题是 emacs25.1 引入的,一个 bugfix 导致了 multibyte http request 问题。

解决方法,修改 url-http.el 文件,注释掉以下几行,并 byte-compile

;; Bug#23750
; (unless (= (string-bytes request)
;            (length request))
;   (error "Multibyte text in HTTP request: %s" request))