无法从 Spacemacs 导出带有西里尔符号的 TaskJuggler

Can't export TaskJuggler with cyrillics symbols from Spacemacs

我一生都在使用 org-mode,并且经常使用 TaskJuggler 来导出 Gant's Diagram。所有工作都很完美,但有时我的任务和属性中有西里尔文文本,并且当尝试使用打开的 html 报告从 space 映射导出到 TJ3 时,我在消息缓冲区中收到错误消息:

~/Documents/OrgMode/TaskJuggler.tjp:0: Error: UTF-8 encoding error in line 1: project nil "<?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?> <?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?>" "1.0" 2018-05-03 +280d {
org-taskjuggler-compile: TaskJuggler failed with errors: Error: UTF-8 encoding error in line 1: project nil "<?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?> <?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?>" "1.0" 2018-05-03 +280d {

我该如何解决? 现在我使用清除导出到 TJ3,然后使用 CLI:

tj3 TaskJuggler.tjp -o ./reports

只有在那个命令之后我才得到我需要的东西。

在 Emacs 中设置语言环境变量对我的情况有所帮助:

(setenv "LC_ALL" "en_US.UTF-8")
(setenv "LANG" "en_US.UTF-8")
(setenv "LANGUAGE" "en_US.UTF-8")
(setenv "LC_COLLATE" "en_US.UTF-8")
(setenv "LC_CTYPE" "en_US.UTF-8")
(setenv "LC_MESSAGES" "en_US.UTF-8")
(setenv "LC_MONETARY" "en_US.UTF-8")
(setenv "LC_NUMERIC" "en_US.UTF-8")
(setenv "LC_TIME" "en_US.UTF-8")

通过 运行 locale 检查您在 shell 环境中使用的区域设置,并相应地设置您的 emacs 变量。

正如@Bimawa 在 other thread 中提到的那样,对于 Spacemacs,此代码应添加到 .spacemacs 点文件的 (defun dotspacemacs/user-config ()) 函数中。