一个文件里能否同时存在两种编码(UTF-8、GBK)

我的解答思路和尝试过的方法

部分中文字段尝试用Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(936))转换成GBK,然后用Encoding.UTF8.GetBytes(text);保存成文件后使用notepad++切换成GBK查看是乱码,用UTF-8查看是正确显示的

我想要达到的结果

一份以UTF-8编码保存的文件里面部分字段用GBK编码来保存中文

有两种编码显示的时候会有一个是乱码,除非你自己解码再显示出来。

可以的,但是用通用的编辑器打开就总会有部分乱码了

一个文件内的文字是可以存在多种编码的,只是你用编辑器打开,会出现乱码而已

可以配置,编译器打开另一种可能会乱码

你的代码搞错了吧?代码放出来看看,可能代码错了并没有转成功。

通常一个文件内只使用一种编码。
但你非要一个文件内使用多种编码,只要未来保证只用你自己的程序读写而不用通用的编辑软件读写,也应该没问题。

改用 File.AppendAllText 方法

如果你是在程序里面显示就好办 你可以用json或者 xml标记某一段文字 使用的字符编码 这样你读取的时候就很方便的知道该用什么字符编码去解析了

应该是可以的

要按照你的具体业务分析,具体编码 gbk 和utf8 是否乱码,理论上一个文件只会有一种编码格式。直接用gbk会有什么问题?