Encoding 日语编码中的汉语

Encoding 日语编码中的汉语,encoding,utf-8,cjk,chinese-locale,Encoding,Utf 8,Cjk,Chinese Locale,这听起来可能是个愚蠢的问题。我在VS代码文本编辑器(默认utf8)中将一些汉字输入到一个空文本文件中。然后我用日语编码保存了这个文件:shift-JIS,它显然没有覆盖我输入的所有字符 但是,在我关闭文件之前,所有中文字符都在VS代码中正确显示。现在,在我关闭文件并使用shift-JIS编码重新打开它之后,几个字符显示为问号?。我猜这些是日语编码中没有包含的汉字吧 过程中发生了什么?我是否可以“找回”现在显示在?中的汉字?我真的不明白在这种情况下编码是如何工作的…并非所有编码都涵盖所有字符。(U

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

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


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

并非所有编码都涵盖所有字符。(Unicode编码原则上是这样的,但即使它们还没有全部功能。)如果你用一种编码保存一些文本,而这种编码不包括文本中的所有字符,那么必须给出一些东西

选项:

  • 您会收到一条错误消息
  • 什么都救不了
  • 无法包含的字符会自动删除
  • 无法包含的字符将转换为其他字符(如问号)

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

谢谢您的回答!事实上,我确实使用utf-8创建了一个.tsv文件,但后来我的合作者在windows上的excel中打开了它,并将其保存在我们不知道的编码中(可能是shift JIS)。现在所有的英语单词都很好,但是汉字已经变成了问号。我在谷歌上搜索,似乎excel有这个问题;它似乎默认以本地机器的编码而不是文件的编码来保存东西?这就是问题背后的故事。。。现在,我们认为数据丢失了,所以我们重新开始…特别是对于Microsoft Excel,我个人的经验表明,带BOM的制表符分隔的UTF-16最不可能被损坏。也许试试?嗯,我会试试的!谢谢