ubuntu 12.04上的guile给出了“输入语言环境转换错误”

时间:2014-01-08 00:21:02

标签: ubuntu scheme guile

运行guile(在交互模式下或使用脚本)在我的ubuntu 12.04上出现此错误: -

guile test.scm
Backtrace:
In ice-9/boot-9.scm:
 149: 2 [catch #t #<catch-closure 9ec72f0> ...]
 157: 1 [#<procedure 9e8f8c0 ()>]
In unknown file:
   ?: 0 [catch-closure]

ERROR: In procedure catch-closure:
ERROR: Throw to key `decoding-error' with args `("scm_from_stringn" "input locale conversion error" 22 #vu8(116 101 115 116 46 115 99 109))'.

关于如何调试它的任何输入也会有所帮助。

2 个答案:

答案 0 :(得分:1)

简短回答:如果您想使用印度英语,则必须使用en_IN.UTF-8作为编码。如果您还没有,请不要忘记运行sudo locale-gen en_IN

答案很长:我终于安装了Ubuntu 12.04.3,所以我可以测试一下。当我测试它时,似乎语言环境必须包含编码,否则它将失败:

$ for LANG in en_{IN,US}{,.UTF-8,.ISO-8859-1}; do echo LANG=$LANG; guile </dev/null; done
LANG=en_IN
Backtrace:
In ice-9/boot-9.scm:
 149: 2 [catch #t #<catch-closure 224b4e0> ...]
 157: 1 [#<procedure 21e90f0 ()>]
In unknown file:
   ?: 0 [catch-closure]

ERROR: In procedure catch-closure:
ERROR: Throw to key `decoding-error' with args `("scm_from_stringn" "input locale conversion error" 22 #vu8(103 117 105 108 101))'.
LANG=en_IN.UTF-8
GNU Guile 2.0.5-deb+1-1
Copyright (C) 1995-2012 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.

LANG=en_IN.ISO-8859-1
warning: failed to install locale: Invalid argument
GNU Guile 2.0.5-deb+1-1
Copyright (C) 1995-2012 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.

LANG=en_US
Backtrace:
In ice-9/boot-9.scm:
 149: 2 [catch #t #<catch-closure 1def1c0> ...]
 157: 1 [#<procedure 1d8d0f0 ()>]
In unknown file:
   ?: 0 [catch-closure]

ERROR: In procedure catch-closure:
ERROR: Throw to key `decoding-error' with args `("scm_from_stringn" "input locale conversion error" 22 #vu8(103 117 105 108 101))'.
LANG=en_US.UTF-8
GNU Guile 2.0.5-deb+1-1
Copyright (C) 1995-2012 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.

LANG=en_US.ISO-8859-1
warning: failed to install locale: Invalid argument
GNU Guile 2.0.5-deb+1-1
Copyright (C) 1995-2012 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.

答案 1 :(得分:0)

将区域设置从en_IN更改为en_US修复了它。