【问题标题】:File Load Some bytes have been replaced with the Unicode substitution character while loading file文件加载 加载文件时,某些字节已替换为 Unicode 替换字符
【发布时间】:2011-05-17 09:30:15
【问题描述】:

我在.Net framework源代码中调试时突然进入他们的一个文件,visual studio 2010报这个错误:

文件加载:
加载文件 XXX 时,部分字节已替换为 Unicode 替换字符,保存文件不会保留原始文件内容。

当我点击确定时,文件被标记为未保存,当你尝试保存时,它说文件被锁定,但我可以覆盖文件。我不知道这条消息是什么意思。

为什么现在不是 Visual Studio 第一次从 Symbol 服务器下载文件?

【问题讨论】:

  • 您是否在使用 .Net Reflector 的“调试程序集”功能?
  • @chibacity 可能是 MS 参考来源,因为他谈到了从符号服务器下载
  • @CodeInChaos 是的,我认为 OP 会意识到是否是这样,因为您必须手动设置它。想想如果,我认为 Reflector PRO 不会为框架的东西下载调试符号。
  • 伙计们,我刚刚在 Visual Studio 2010 中启用了(启用 .Net Framework 源代码步进)功能,剩下的事情就交给我了。
  • 我曾经在使用 Qt 执行替换操作时收到此错误。它“破坏”了我所有的版权符号。

标签: c# .net visual-studio-2010 debugging


【解决方案1】:

在最近的 Windows 10 2018 年春季更新中打开(出于测试目的)新设置“测试版:使用 Unicode UTF-8 获得全球语言支持”后,我开始收到此错误。

然后,对于每个具有非 ascii 字符(在我的情况下主要是德语变音符号)并且之前没有以 UTF8 存储的文件,都会显示该消息。

短期修复:将设置恢复为不使用 UTF-8 作为“非 unicode 程序的当前语言”,而是使用具有源文件中使用的特殊字符的语言。

长期修复:将所有错误文件转换为 UTF-8。

【讨论】:

    【解决方案2】:

    我通过将“非 Unicode 程序的语言”设置更改为“英语(美国)”来解决此问题。 如果您使用的是 Windows 10,您可以在“控制面板 -> 时钟、语言和区域 -> 区域 -> 管理”中找到它。

    【讨论】:

    • 谢谢,这个解决方法对我有帮助。我的非 Unicode 应用程序支持失去了俄语,但没关系。主要的是 Visual Studio 没有这个问题。
    【解决方案3】:

    我刚刚遇到了同样的问题。它需要打开一个文件并再次保存它。我想某种可以批量执行此操作的工具可以解决问题。

    upd:实际上这似乎没有帮助......正在寻找另一个解决方案

    upd2:重新保存文件确实有帮助,但您必须禁用此选项:

    调试\常规\要求源文件与原始版本完全匹配

    【讨论】:

    • 当我从 web 粘贴 html 代码并使用此符号 ♦ 时,我在 vs 2013 中遇到此错误,如果您在页面中需要 utf-8 编码,请检查 this,希望对某人有所帮助。跨度>
    【解决方案4】:

    我遇到了同样的问题。似乎 vs2010 正在尝试使用错误的编码读取源文件。我用editpad打开文件,转成utf-8,就ok了。

    【讨论】:

      【解决方案5】:

      如果您使用的是 Windows 10,您可以在 Control Panel -> Clock, Language, and Region -> Region -> Administrative 中找到它。从非 Unicode 程序的语言中,选择 "Select system locale"

      取消选中框"Beta: Use Unicode UTF-8 for worldwide language support"。按确定。系统将提示您重新启动 Windows - 执行此操作。

      之后,如果您是开发人员 - 您可能会在 Visual Studio 中遇到如下编译错误:

      error C2855: command-line option "source-charset" inconsistent with precompiled header

      只需重建整个项目,问题就会消失。

      【讨论】:

      • 难以置信。我当时认为这是 Visual Studio 的问题,但显然这是一些 Windows 新功能。有点烦人,需要重新启动窗口,但是天哪 - 我永久摆脱了这个警告。谢谢!
      【解决方案6】:

      我使用notepad++并编辑了项目中的每个文件 在每个文件的末尾都有 NullNullNullNull 行将其删除并单击 ctrl+S 对所有文件执行此操作会帮助我知道它对我有帮助

      【讨论】:

        【解决方案7】:

        在我的情况下 this beta settings 这就是导致这个问题的原因。

        【讨论】:

          【解决方案8】:

          我使用 SVN *.tmpl 模板文件作为版本号,它包含 (c) 版权符号。 VS 2010 在从 AssemblyInfo.tmpl 文件生成 AssemblyInfo.cs 文件时抱怨这一点。

          所以我用“(c)”替换了版权符号,错误消息消失了。

          【讨论】:

            【解决方案9】:

            对我有用的是我发现页面出现错误 "加载文件 _PartialLogin.cshtml 时,部分字节已替换为 Unicode 替换字符,保存文件不会保留原始文件内容。"

            我在与 VS 2017 不同的编辑器中打开 _PartialLogin.cshtml(我使用的是 Notepad++)单击菜单栏上的 >EncodingEncode in UTF-8

            【讨论】:

              【解决方案10】:

              如果您不想更改计算机编码设置(因为我同时在法语和中文环境下工作),这是一种使用 VS Code 将您的源文件转换为 UTF-8 编码的方法:

              1. 用 VS Code 打开文件
              2. 在右下角找到编码按钮(通常是 UTF-8)
              3. 点击它并选择重新打开编码,然后选择第一个(自动推荐)
              4. 现在您可以看到乱码消失了
              5. 再次单击编码按钮,这次选择使用编码保存,然后选择 UTF-8
              6. 保存文件

              希望这有帮助。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-12-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-08-27
                • 2020-12-15
                • 1970-01-01
                相关资源
                最近更新 更多