【问题标题】:Opening a Unix file in Windows Notepad++?在 Windows Notepad++ 中打开一个 Unix 文件?
【发布时间】:2016-05-23 08:52:24
【问题描述】:

我从供应商处收到一个文件,我通过 SFTP 下载该文件。我们的系统都在 Windows 上运行。

当我在 Notepad++ 中打开文件时,状态栏显示“UNIX”和“UTF-8” 特殊字符显示不正确。

我尝试将文件转换为 Notepad++ 允许的不同格式,但没有人将字符“OSC”转换为德语字母“ä”。这是已知的 Unix-Windows 吗?我的 google-foo 显然不够好。

  1. 我应该尝试哪种转换才能正确显示文件?
  2. 如何在 C# 中以编程方式实现相同的目标?

【问题讨论】:

  • 它被标记为UNIX,因为unix中的返回与windows不同。该文件是 ASCII 字符,其中字符 0-127 相同,128-255 不同,具体取决于计算机的语言设置。

标签: c# unix text notepad++ codepages


【解决方案1】:

在 Windows 上,文件的编码与编辑器甚至它的 xml 标头所说的不匹配是很常见的。人马马虎虎。也许它真的是 UTF-16,或者我认为可能是 cp-1252 的非标准 windows 扩展 ascii 东西。 (这在 *nix 上并不常见,因为我们通常只使用 utf-8,不需要其他人......不是说 *nix 用户不那么马虎)

为了弄清楚它是哪种编码,我会复制文件,然后删除没有问题的位(将 Mägenwil 保留为整个文件),然后保存,并使用 linux 命令“file”将告诉正确的编码是什么(仅对小文件可靠......它不会读取整个文件;也许notepad ++会做同样的事情)。删除其他位的原因是它可能是编辑器用于检测的 UTF-8 以及其他内容的混合。

我会尝试在 linux 中使用 iconv 命令进行测试。例如:

iconv -f UTF-16 -t UTF-8 -o outfile infile

并且任何编码转换都应该可以在 C# 或任何功能语言中进行,只要您知道它是如何被破坏的,以便您可以反转它。如果你发现它的一部分是 utf-8 而另一部分是其他的,那么记住不要转换整个文件,而只转换重要的部分。

【讨论】:

  • 叹息 谢谢。这些正是我已经有了并在谷歌上搜索的想法,您还准确地描述了我试图避免的漫长道路......希望有一颗我不知道的灵丹妙药......
猜你喜欢
  • 1970-01-01
  • 2019-06-04
  • 2013-11-15
  • 1970-01-01
  • 2016-01-03
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多