【问题标题】:c++ visual studio code appears weird on windows command line?c++ Visual Studio 代码在 Windows 命令行上看起来很奇怪?
【发布时间】:2018-12-03 07:58:56
【问题描述】:

opening on windows

opening on powershell

我在将我的 c++ 文件从 Visual Studio 导出到我的学校服务器/文件夹时遇到了问题,我将在其中使用 powershell 在命令行上打开和运行文件。当我在文件中打开它们时,代码都是间隔开的和奇怪的字体,当我在命令行上打开它们时,它会显示为奇怪的字符。这会导致代码根本无法运行。

我该如何解决这个问题?

编辑:我添加了一些图片以便更好地参考

【问题讨论】:

  • 没有看到你的结果很难说。请编辑您的问题并添加有关该问题的屏幕截图。 “Spaced out”听起来像是 Unicode 编码问题,双字节表示会在每个字母周围添加 s p a c e s。
  • @vonPryz 我添加了一些截图

标签: c++ visual-studio powershell command-line


【解决方案1】:

这可能是因为文件是 UTF-8 编码的,但被读取为 ANSI 或反之亦然(或其他一些编码不匹配)。尝试直接在powershell中导航到文件,即

cd C:\Users\username\source\repos\projectname\projectname

如果您使用默认路径,并使用记事本打开文件,然后单击“另存为”并检查编码(保存按钮左侧)。默认值指示正在使用的编码,尝试更改为 UTF-8 或 ANSI - 无论默认值不是。如果这不起作用,您还可以尝试使用 UTF-16 和 UTF-32(我相信它们在记事本中被列为 Unicode 和 Unicode Big Endian,但我尚未验证)。

在 Visual Studio 中,根据this 文章,您可以通过转到File > Save As 并在Save As 对话框中单击Save 旁边的向下箭头并选择Save with encoding... 来执行此操作默认似乎是代码 1252,我建议先尝试 UTF-8,看看是否可行。

【讨论】:

  • 我相信这是问题所在,我不知道如何更改编码。我的 java 文件在 intellij 上工作正常,它们是 UTF-8,我不确定它是否与 c++ 不同。
  • 正如我在答案中所说,您可以使用记事本事后更改文件的编码。您可以在 Visual Studio 中做同样的事情,我将更新我的答案以包含该内容
【解决方案2】:

您遇到的是编码问题。第一个文件以 Unicode byte order mark ÿþ 开头。即 UTF-16 小端。因为 UTF-16 对每个字符使用两个字节,并且您的字符来自 ASCII 子集,所以每个其他字节都是 00 - 呈现为额外的空格。

第二个文件更难破解,因为 Nano 无法正确渲染字符。我猜它有完全相同的问题 - UTF-16。

似乎某些版本的 Visual Studio ninja-changed default file encoding 为 UTF-16。

关于如何解决这种情况,请将文件以 ASCII 或 UTF8 编码保存在您的 Windows 系统上,然后像 @Ghost 建议的那样上传。

【讨论】:

    猜你喜欢
    • 2013-01-03
    • 2019-01-27
    • 2020-06-23
    • 1970-01-01
    • 2013-02-24
    • 2022-12-18
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多