【问题标题】:notepad ++ shows ucs-2LE while ubuntu FILE [file] shows UTF-16LE, I am confused?notepad ++ 显示 ucs-2LE 而 ubuntu FILE [file] 显示 UTF-16LE,我很困惑?
【发布时间】:2012-07-31 08:32:24
【问题描述】:

我正在尝试将从mssql 生成的文件转换为utf-8。当我在 Windows Server 2003 中使用 notepad++ 打开他 mssql 的输出时,将文件识别为 UCS-2LE 我将文件复制到 Ubuntu 机器上,使用 file [file] 它显示编码是 UTF-16LE。 真的很迷茫,编码肯定有区别,因为名字不一样。 但是为什么我会在同一个文件中看到这个。它是从 mssql 查询生成的 .csv 文件。

【问题讨论】:

  • 老问题,但我认为 benw 的答案是正确的,应该标记为这个 - 或者还有什么对你“开放”的东西?

标签: encoding utf-8 notepad++ ucs2 utf-16le


【解决方案1】:

在大多数情况下,UTF-16 和 UCS-2 是一回事。没有区别。

这意味着每个字符都是两个字节宽。 “LE”代表little endian,即每个两字节字符以低字节在前存储。

如果要转换为 UTF-8,请在 Notepad++ 中单击编码菜单中的Convert to UTF-8,然后保存。

如果您的其他程序在执行此操作后阻塞了文件,或者您在文件开头看到两个垃圾字符,请改为单击 Convert to UTF-8 without BOM

【讨论】:

  • 据我所知,UTF-16 字符也是 2 个字节宽。为什么 Ubuntu 中的 file [file] 显示 Utf-16LE?当我看到iconv -l 识别的编码列表时,我可以看到两种可用的编码。现在我想知道当我从这个编码转换为utf-8编码时,我应该使用什么编码作为输入文件编码?
  • 感谢您的回答和编辑,但我正在尝试在 Ubuntu 机器中进行转换,如果您仔细阅读我的解释,您会发现我需要在两种编码中选择一种,它在命令iconv -f [input encoding] -t [output encoding] [file] 的输入编码中。在这种情况下你会如何建议我?
  • 我使用 NOTEPAD++ 将文件转换为没有 BOM 的 UTF-8,但后来当我打开文件时,它再次显示编码是 ANSI 而不是 UTF-8 而没有 BOM 编码。
  • 这仍然在 Notepad++ 中还是在 Ubuntu 机器上? I don't know anything about Ubuntu, but when UTF-8 without BOM is selected, the Notepad++ status bar should report the encoding to be ANSI as UTF-8.
  • 另外,就像我说的,UTF-16 和 UCS-2 几乎是一回事。两种都试一下,看看哪一种有效。
猜你喜欢
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多