2013-06-05 101 views
0

在Windows 7重新启动后,我突然看到在Visual Studio中出现了Unicode问题。有没有人有关于如何解决这个问题的想法?在过去的几个小时里,我一直在使用病毒扫描程序和.cspoj文件(错误所在的位置),但无济于事。Visual Studio Unicode问题 - 内部故障

Error 1 The build stopped unexpectedly because of an internal failure. 
System.Text.EncoderFallbackException: Unable to translate Unicode character \uD97C at index 1321 to specified code page. 
    at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index) 
    at System.Text.EncoderFallbackBuffer.InternalFallback(Char ch, Char*& chars) 
    at System.Text.UTF8Encoding.GetByteCount(Char* chars, Int32 count, EncoderNLS baseEncoder) 
    at System.Text.UTF8Encoding.GetByteCount(String chars) 
    at System.IO.BinaryWriter.Write(String value) 
    at Microsoft.Build.BackEnd.NodePacketTranslator.NodePacketWriteTranslator.TranslateDictionary(Dictionary`2& dictionary, IEqualityComparer`1 comparer) 
    at Microsoft.Build.Execution.BuildParameters.Microsoft.Build.BackEnd.INodePacketTranslatable.Translate(INodePacketTranslator translator) 
    at Microsoft.Build.BackEnd.NodePacketTranslator.NodePacketWriteTranslator.Translate[T](T& value, NodePacketValueFactory`1 factory) 
    at Microsoft.Build.BackEnd.NodeConfiguration.Translate(INodePacketTranslator translator) 
    at Microsoft.Build.BackEnd.NodeProviderOutOfProcBase.NodeContext.SendData(INodePacket packet) 
    at Microsoft.Build.BackEnd.NodeProviderOutOfProc.CreateNode(Int32 nodeId, INodePacketFactory factory, NodeConfiguration configuration) 
    at Microsoft.Build.BackEnd.NodeManager.AttemptCreateNode(INodeProvider nodeProvider, NodeConfiguration nodeConfiguration) 
    at Microsoft.Build.BackEnd.NodeManager.CreateNode(NodeConfiguration configuration, NodeAffinity nodeAffinity) 
    at Microsoft.Build.Execution.BuildManager.PerformSchedulingActions(IEnumerable`1 responses) 
    at Microsoft.Build.Execution.BuildManager.HandleNewRequest(Int32 node, BuildRequestBlocker blocker) 
    at Microsoft.Build.Execution.BuildManager.IssueRequestToScheduler(BuildSubmission submission, Boolean allowMainThreadBuild, BuildRequestBlocker blocker) 

答案是:

http://www.hanselman.com/blog/CSIVisualStudioUnableToTranslateUnicodeCharacterAtIndexXToSpecifiedCodePage.aspx

NB。汉斯是最接近制定发生了什么......所以我给他的积分

+0

问题是出现在所有的csprojs中,还是只与特定的问题发生? – EFrank

+0

@frank:它发生在所有.csproj文件中。源代码管理显示大部分这些文件在几天内都没有改变。 – sgtz

回答

2

那么,该消息是相当准确的。 \ u97c utf-16替代品,替代品必须总是出现在一对中,以编码一个大于\ uFFFF的字符。异常消息表示该对中的第二个代理不会出现在字符串中。

看到这发生在一个构建是非常坏消息,这样的字符不应该出现在项目文件。你不会把它们写成古老的死中东语言,或者与几千个仍然知道如何说话的人一起使用一种模糊的美洲土着语言:)。唯一合理的解释是你的磁盘上的文件全部都是乱码。您需要修复机器,现在将磁盘替换为优先级列表中的高位。

+0

任何工具,以确保它是一个格式正确的UTF-8文档?在Notepad ++中打开.csproj文件给出​​了它没关系的外观。这实际上也是一个新的硬盘驱动器(几个星期前更换)。噢亲爱的。谢谢回复。 – sgtz

+0

你已经有了这样的工具,MSBuild做得很好。不要使用Notepad ++,它太宽容了。你没有说清楚为什么你更换了磁盘,我猜这个文件在旧磁盘损坏之前有非零赔率。然后,当驱动器非常新或非常老时,驱动器也会失败。十六进制查看器跳转到头脑中。不要*在可疑磁盘上安装新程序,这会增加进一步损坏的可能性。 –

+0

更换原因:用新SSD替代标准HD以提高速度。文件在源代码下备份...所以...可以再次取回它没有问题。将进一步试验。感谢帮助。 – sgtz