【问题标题】:Chinese in Japanese encoding中文日文编码
【发布时间】:2020-03-22 09:46:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: encoding utf-8 cjk chinese-locale


    【解决方案1】:

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

    选项:

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

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

    【讨论】:

    • 感谢您的回答!事实上,我确实使用 utf-8 创建了一个 .tsv 文件,但后来我的合著者在 windows 上的 excel 中打开了它,并将它保存在 we-don't-know-what-encoding(可能是 shift-JIS)中。现在所有的英文单词都很好,但是中文字符已经变成了问号。我用谷歌搜索,似乎 excel 有这个问题;似乎默认将内容保存在本地机器的编码中而不是文件的编码中?所以这就是问题背后的故事......现在我们认为数据丢失了,所以我们重新开始......
    • 对于 Microsoft Excel,我的个人经验表明,带有 BOM 的制表符分隔的 UTF-16 最不可能被损坏。可以试试吗?
    • 嗯,我会试试的!谢谢。
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 2016-11-08
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2020-02-25
    • 1970-01-01
    相关资源
    最近更新 更多