首页 > 解决方案 > 中文日文编码

问题描述

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

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

过程中发生了什么?无论如何我可以“找回”现在显示的汉字?吗?我真的不明白编码在这种情况下是如何工作的......

标签: encodingutf-8cjkchinese-locale

解决方案


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

选项:

  • 您收到一条错误消息,
  • 什么都没有保存,
  • 不能被包含的字符被默默地丢弃,
  • 不能包含的字符被转换为其他字符(如问号)。

一旦完成转换,数据就会丢失,并且无法恢复。为什么不使用 UTF-8 或其他 Unicode 编码?(对于大量中文文本,GB 18030 可能是最好的。)


推荐阅读