日文编码中的中文

Chinese in Japanese encoding

这听起来像是一个愚蠢的问题。我在 VS 代码文本编辑器(默认 utf8)中将一些汉字输入到一个空文本文件中。然后我将文件保存为日语编码:shift JIS,显然没有涵盖我输入的所有字符。

但是,在我关闭文件之前,VS code 中所有汉字都可以正常显示。现在,在我关闭文件并使用 shift JIS 编码重新打开它后,几个字符显示为问号 ?。我猜这些是日文编码没有涵盖的汉字吧?

过程中发生了什么?反正我可以'get back'现在显示在?中的汉字吗?我真的不明白编码在这种情况下是如何工作的...

并非所有编码都涵盖所有字符。 (原则上,Unicode 编码可以,但即使它们还没有相当 一切。)如果您将一些文本保存在不包含该文本中所有字符的编码中,有些东西必须给。

选项:

  • 您收到一条错误消息,
  • 什么都没有保存,
  • 无法包含的字符被静默删除,
  • 无法包含的字符被转换为其他字符(例如问号)。

转换完成后,数据将丢失且无法恢复。为什么不使用 UTF-8 或其他 Unicode 编码? (GB 18030 可能最适合大量中文文本。)