The*_*Guy 3 encoding notepad++ unicode bom
有没有办法使用UTF-16编码(小端)在Notepad ++中保存文件,但不添加字节顺序标记?例如,如果一个文本文件使用 little endian UTF-16 编码 ( Encoding > UCS-2 LE BOM)保存在 notepad++ 中,它将在其FF FE前面添加字节,我想将其删除而无需手动执行此操作。
如果默认情况下没有办法做到这一点,有没有办法为 Notepad++ 创建一个与UCS-2 LE BOM选项相同的编码,只是没有字节顺序标记?
小智 5
首先,Notepad++ 甚至不支持 UTF-16。它是(正如它所说的)UCS-2。但是,虽然 UTF-16 向后兼容 UCS-2,但这两者并不相同。UCS-2 总是在 2 个字节内保存字符(代码点)。但是 UTF-16 作为 UCS-2 的后继者,引入了所谓的代理对,以允许每个字符的位数增加两倍以上。
可视化这一点的一个好方法是创建一个文件,其字符超出 UCS-2 文件的范围。例如,尝试任何表情符号(如 )。将其粘贴到文本文件中,并使用 Notepad++ 将其保存为 UCS-2 文件。然后重新打开它。该字符将不再正确显示,因为编码不支持它。
接下来,在支持 UTF-16 的编辑器(如 Windows 记事本)中执行相同的操作。与 Notepad++ 不同的是,如果将其保存为 UTF-16 文件,则该字符在保存并重新打开后仍将保持可见。
其次,从非 UTF-8 的文本文件中删除 BOM 并不是一个很好的理由。这是因为文本编辑器通常会扫描 BOM 文件以检查编码,因为编码并未明确保存在文件中。所以文本编辑器必须猜测,最精确的方法是通过BOM。BOM 基本上是文本文件的标题。删除它是一个坏主意。
| 归档时间: |
|
| 查看次数: |
7863 次 |
| 最近记录: |