Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows记事本中打开Unix文件++;?_C#_Unix_Text_Notepad++_Codepages - Fatal编程技术网

C# 在Windows记事本中打开Unix文件++;?

C# 在Windows记事本中打开Unix文件++;?,c#,unix,text,notepad++,codepages,C#,Unix,Text,Notepad++,Codepages,我从供应商处收到一份文件,我根据SFTP下载该文件。我们的系统都在Windows上工作 当我在Notepad++中打开文件时,状态栏显示“UNIX”和“UTF-8” 特殊字符显示不正确 我试图将文件转换为Notepad++允许的不同格式,但没有人将字符“OSC”转换为德语字母“ä”。这是已知的Unix Windows吗?我的GoogleFoo显然不够好 我应该尝试哪种转换来正确显示文件 如何在C#中以编程方式实现相同的功能 在windows上,文件的编码与编辑器甚至其xml头所说的不匹配是很常

我从供应商处收到一份文件,我根据SFTP下载该文件。我们的系统都在Windows上工作

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

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

  • 我应该尝试哪种转换来正确显示文件
  • 如何在C#中以编程方式实现相同的功能

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

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

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

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

    任何编码转换都应该可以在C#或任何有特点的语言中进行,只要你知道它是如何被破坏的,这样你就可以将它反转。如果你发现它是utf-8的一部分和其他部分,那么请记住不要转换整个文件,而只转换重要的部分。

    在windows上,文件的编码通常不会被破坏tch编辑器甚至它的xml头都说它是什么。人们都很邋遢。也许它真的是UTF-16,或者是我认为可能是cp-1252的非标准windows扩展ascii(在*nix上不常见,因为我们通常都只使用UTF-8,不需要其他人…不要说*nix用户不那么邋遢)

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

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

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

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

    它被标记为UNIX,因为UNIX中的返回值不同nt来自windows。该文件为ASCII,其中字符0-127相同,128-255不同,具体取决于计算机的语言设置。由于UNIX中的返回与windows不同,因此将其标记为UNIX。该文件为ASCII,其中字符0-127相同,128-255不同,具体取决于计算机的语言设置计算机。叹气谢谢。这些正是我的想法,我已经发现谷歌搜索,你也描述了我正试图避免的漫长道路…希望有一颗我不知道的神奇子弹…叹气谢谢。这些正是我的想法,我已经发现谷歌搜索,你也描述了我正在尝试的漫长道路为了避免…希望有一颗我不知道的魔法子弹。。。