错误消息“错误:程序中出现杂散'\\302'”

新手上路,请多包涵

我在 Ubuntu 10.10 (Maverick Meerkat) 上使用 Code::Blocks 。我已连接 Mac 键盘并将键盘设置设置为“瑞士德语 Mac”。现在,每当我写一个等号,后跟一个空格(类似于宽度 = 100)时,我都会收到错误消息:程序中的流浪 ‘\302’。

我知道这个错误意味着文本文件中有一个非标准字符。

当我删除空格字符时,程序编译得很好。这意味着 Code::Blocks 添加了某种特殊字符。但我不明白为什么会发生这种情况。是什么原因?

‘\302’ 代表什么字符?

[更新]

我进一步调查了这个问题。当我使用组合 Shift + Space 时,我会迷路。现在我知道它不再经常发生了。但它仍然相当烦人,尤其是在编写代码时……有没有办法在 X11 中关闭这个组合?

[解决了]

感谢无用的回答,我能够解决“问题”。它实际上更像是一个功能。 Shift + 空格默认创建了一个 spacenolinebreak。所以通过改变xmodmap

 xmodmap -e "keycode  65 = space space space space space space"

此行为已被覆盖,现在一切正常。

原文由 underdoeg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

由于您确定它是由按 Shift + Space 引起的,因此您可以检查 X 本身在做什么。首先,从命令行运行 xev ,按 Shift + Space 并检查输出。例如,我看到:

 $ xev
KeyPress event, serial 29, synthetic NO, window 0x2000001,
    root 0x3a, subw 0x0, time 4114211795, (-576,-249), root:(414,593),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 29, synthetic NO, window 0x2000001,
    root 0x3a, subw 0x0, time 4114213059, (-576,-249), root:(414,593),
    state 0x1, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False
...

然后,运行 xmodmap -pk 并查找键码(空格应为 65,如上,但请检查您的 xev 输出)。

如果你看到类似的东西

     65         0x0020 (space)

那么 X 没有这样做。另一方面,如果我选择一个由 shift 修改的字符键,我 看到如下内容:

      58         0x006d (m)      0x004d (M)

如果您的键码有两个或多个键符,那么 X 就是罪魁祸首。在这种情况下,像 xmodmap -e 'keycode 65 space' 这样的东西应该可以工作。

原文由 Useless 发布,翻译遵循 CC BY-SA 4.0 许可协议

我决定将文件从 MAC book 移动到 Linux 机器,并使用带有 icloud.com 地址的电子邮件。当我打开传输的文件时,错误消失了,文件现在可以编译了!

原文由 matrixmike 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题