我可以在ANSI编码的文件中添加UTF-8字符吗?

我可以在ANSI编码的文件中添加UTF-8字符吗?,utf-8,character-encoding,ansi,Utf 8,Character Encoding,Ansi,我有一个字符编码文件设置为ANSI,但是我仍然可以复制字符集UTF-8的字符。文件上定义的字符集是否强制用于整个文件?我试图理解角色集是如何工作的。谢谢文件是字节。它们是长长的数字序列。在大多数操作系统中,这就是它们的全部。文件中没有附加“编码”。该文件为个字节 由软件来解释这些字节是否具有某种意义。例如,“图片文件”和“文本文件”之间并没有本质上的区别,它们都是长长的数字序列。但是软件使用一些编码规则来解释“图片文件”来创建图片。类似地,软件使用一些编码规则解释“文本文件” 大多数文本文件格式

我有一个字符编码文件设置为ANSI,但是我仍然可以复制字符集UTF-8的字符。文件上定义的字符集是否强制用于整个文件?我试图理解角色集是如何工作的。谢谢

文件是字节。它们是长长的数字序列。在大多数操作系统中,这就是它们的全部。文件中没有附加“编码”。该文件为个字节

由软件来解释这些字节是否具有某种意义。例如,“图片文件”和“文本文件”之间并没有本质上的区别,它们都是长长的数字序列。但是软件使用一些编码规则来解释“图片文件”来创建图片。类似地,软件使用一些编码规则解释“文本文件”

大多数文本文件格式都不包含其编码。这取决于软件知道或推断它是什么。有时,操作系统在这里提供帮助,并提供文件中没有的其他元数据,如文件扩展名。这通常对文本文件没有帮助,因为在大多数系统中,文本文件没有基于编码的不同扩展名

ANSI中有许多字符编码与UTF-8编码完全匹配。因此,仅仅看一个文件,就不可能知道它是用哪种编码编写的,因为这两种编码可能完全相同。UTF-8中存在非法的字节序列,因此可以确定该文件不是有效的UTF-8,但所有字节序列都是有效的ANSI(尽管存在非常罕见的字节序列,因此可以用来猜测它不是ANSI)


(我想你指的是Windows-1252;)

文件是字节。它们是长长的数字序列。在大多数操作系统中,这就是它们的全部。文件中没有附加“编码”。该文件为个字节

由软件来解释这些字节是否具有某种意义。例如,“图片文件”和“文本文件”之间并没有本质上的区别,它们都是长长的数字序列。但是软件使用一些编码规则来解释“图片文件”来创建图片。类似地,软件使用一些编码规则解释“文本文件”

大多数文本文件格式都不包含其编码。这取决于软件知道或推断它是什么。有时,操作系统在这里提供帮助,并提供文件中没有的其他元数据,如文件扩展名。这通常对文本文件没有帮助,因为在大多数系统中,文本文件没有基于编码的不同扩展名

ANSI中有许多字符编码与UTF-8编码完全匹配。因此,仅仅看一个文件,就不可能知道它是用哪种编码编写的,因为这两种编码可能完全相同。UTF-8中存在非法的字节序列,因此可以确定该文件不是有效的UTF-8,但所有字节序列都是有效的ANSI(尽管存在非常罕见的字节序列,因此可以用来猜测它不是ANSI)


(我想你是指Windows-1252;那里。)

你使用的是文本编辑器吗?是的,我使用的是记事本++你使用的是文本编辑器吗?是的,我使用的是记事本++这对理解字符编码非常有帮助。因此,我进一步的问题是,为什么有时我们可以选择将文件保存为utf-8或任何其他编码。这对以任何方式读取文件都有影响。如果您正在编写软件,您可以使用任何编码进行写入和读取。如果您正在使用其他人的软件,这取决于他们支持什么编码。这个问题没有一般的答案。这对于理解字符编码非常有帮助。因此,我进一步的问题是,为什么有时我们可以选择将文件保存为utf-8或任何其他编码。这对以任何方式读取文件都有影响。如果您正在编写软件,您可以使用任何编码进行写入和读取。如果您正在使用其他人的软件,这取决于他们支持什么编码。这个问题没有一般性的答案。