【问题标题】:Mono/Linux character encoding issue?Mono/Linux 字符编码问题?
【发布时间】:2013-03-11 04:30:31
【问题描述】:

我正在开发一个作为 .NET 控制台应用程序运行的项目。我最初是在 Windows 中编写的,但我刚刚转换为 GNU/Linux 并安装了 Mono,它可以很好地运行我的应用程序,但是输出存在问题。

输出应该是类似'Loading plugin '/blabla/bla/path' 但正如你所看到的,嗯.... 胡言乱语

我很确定是某种转义序列导致了这种情况,但我不知道是什么。有谁知道是什么导致了这个混乱?

【问题讨论】:

  • 在没有看到任何源代码的情况下,只能像您一样推测存在一些编码问题。
  • 回显,例如 [Info] 0:34 bla bla bla。这是造成这种情况的部分,但我不知道为什么......

标签: c# .net linux mono


【解决方案1】:

我想通了!这是由更改 Console.Forecolor 或背景颜色引起的。

【讨论】:

    【解决方案2】:

    我认为这要么是单声道中的错误,要么是您的 Linux 发行版中的错误。看这里:

    https://github.com/mono/mono/blob/master/mcs/class/corlib/System/TermInfoDriver.cs#L149

    现在看看你的 $TERM 是什么样子的——它的内容很可能不是“xterm”,而是类似于“xterm-256color”的东西。你会注意到它掉了下来。究竟发生了什么,我不知道,但我不认为它会落入 ANSI 终端,因为这也应该有效,而是从你的发行版中获取一个 terminfo 文件,它会阻塞并发出无效的转义序列颜色标记。此外,您可能会注意到,一旦您将 $TERM 设置为它可以识别的东西,所有颜色都会有光泽并且效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2013-04-21
      相关资源
      最近更新 更多