【问题标题】:Cyrillic text appears garbled in the VisualStudio.com web interface西里尔文文本在 VisualStudio.com Web 界面中出现乱码
【发布时间】:2014-06-09 14:12:00
【问题描述】:

我正在使用 visualstudio.com git 存储我的源代码,现在它搞砸了乌克兰文本,而不是:

WithSuccess("Збережено");

我是这样的:

WithSuccess("Çáåðåæåíî");

我不确定我们在本地 PC 上的问题出在哪里,一切看起来都不错,只有在推送提交后,我才能在网络上看到它已经改变。

有什么配置可以帮助解决这个问题吗?

【问题讨论】:

  • 是代码改了,还是web访问无法正确显示?
  • 代码已更改,因为在其他机器上将源更新到最新版本后,我得到的是意大利面条而不是西里尔文字。或者也许我的机器配置为可以处理西里尔文但其他机器不能,但我不这么认为......

标签: git character-encoding visual-studio-2013 azure-devops


【解决方案1】:

...我可以在网络上看到它已更改。

问题在于,存储在 Git 存储库中的文件没有附加元信息,这会提示 渲染器(在您的情况下 - 渲染文件内容的网站引擎)文件被编码的编码。 Git 大部分时间将其存储的内容视为不透明的二进制文件,并且仅在其某些 UI 部分(git loggitkgit gui)中考虑编码。

所以要查看哪些部分行为不端,克隆您推送的存储库重新到其他地方(在您的本地 PC 上)并检查包含西里尔文文本的文件的内容。如果你看到一切正常,那么就接受这个或针对该在线服务提交一个功能请求,以支持用户特定的编码提示——比如某些 Git 工具使用的gui.encoding 配置变量——这样你就可以指定什么编码存储库中的文件应该在。

【讨论】:

  • @bats-ihor,仅从您显示的文本的外观来看,我会说您的文件在 Windows-1251 中编码,并且网页渲染器假定它是 Latin-1 (Windows-1252 )。由于这些编码表中的低 127 个字符相同,因此 ASCII 文本不会出现乱码。
  • 从他对我的评论的回复中询问是否是这种情况:代码已更改,因为在其他机器上将源更新到最新版本后,我得到的是意大利面条而不是西里尔文字。或者也许我的机器配置为可以处理西里尔文但其他机器不能,但我不这么认为......
  • 是的,问题不仅出在浏览器上,下载代码后,我得到了如下所述的搞砸文本。
  • @BatsIhor,好的,因为您推送到的存储库不应该更改发送到其中的对象,问题应该与您的本地设置。因此,首先请阅读this manual page 并尝试查看您的项目树中某处是否有.gitattributes 文件或项目目录中.git\info 目录下的attributes 文件。如果你碰巧有任何这样的文件,它可能会定义一个 clean 过滤器或一个 encoding 指令,它们可能会被 VS 使用。
  • @BatsIhor,要检查的第二件事是尝试验证 plain 提交——绕过 VS 用来提交到 Git 的任何机制——工作。为此,您需要简单的Git for Windows(安装时请务必勾选“使 Git 在 Windows 命令 shell 中可用”框)。一旦你安装并运行它(在控制台提示符下运行git --version 应该打印 Git 的版本字符串),cd 到项目的目录,在那里创建一个简单的文本文件(将它保存在 Windows-1251 中 - 称为“ANSI " 在记事本中) 并提交:git add thatfile.cs + git commit.
猜你喜欢
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
相关资源
最近更新 更多