小编Skl*_*ert的帖子

为什么每个文本编辑器都要写入一个附加字节 (UTF-8)?

我正在使用Ubuntu 16.04 (Xenial Xerus)。我发现文本编辑器会向文本文件写入额外的字节 (UTF-8)。当我试图通过测试时,这给我带来了一些问题。

因此,我们有一个字符串“Extra byte”,其大小为 UTF-8 格式的 10 个字节。例如,当我尝试通过gedit将其写入文件时,我得到一个大小为 11 字节的文件。此外,nano 的尺寸相同。即使“echo“额外字节”> 文件名”也会返回 11 个字节。

然而,当我们尝试这样的事情时:

#include <fstream>

int main(){
    std::ofstream file("filename");

    file<<"Extra byte";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或这个:

with open("filename_py",'w+',encoding='UTF-8') as file:
    file.write('Extra byte')
Run Code Online (Sandbox Code Playgroud)

我们得到大小 = 10 字节的文件。为什么?

linux gedit nano

3
推荐指数
1
解决办法
1116
查看次数

标签 统计

gedit ×1

linux ×1

nano ×1