encoding - 中文日文编码
问题描述
这听起来像是一个愚蠢的问题。我在 VS 代码文本编辑器(默认 utf8)中将一些汉字输入到一个空文本文件中。然后我将文件保存为日语编码:shift JIS
,这显然没有涵盖我输入的所有字符。
但是,在我关闭文件之前,所有中文字符都在 VS code 中正确显示。现在,在我关闭文件并使用shift JIS
编码重新打开它之后,几个字符显示为问号?
。我猜这些是日文编码未涵盖的汉字?
过程中发生了什么?无论如何我可以“找回”现在显示的汉字?
吗?我真的不明白编码在这种情况下是如何工作的......
解决方案
并非所有编码都涵盖所有字符。(原则上,Unicode 编码可以,但即使它们还没有完全具备。)如果您将某些文本保存在不包含该文本中所有字符的编码中,则必须给出一些东西。
选项:
- 您收到一条错误消息,
- 什么都没有保存,
- 不能被包含的字符被默默地丢弃,
- 不能包含的字符被转换为其他字符(如问号)。
一旦完成转换,数据就会丢失,并且无法恢复。为什么不使用 UTF-8 或其他 Unicode 编码?(对于大量中文文本,GB 18030 可能是最好的。)
推荐阅读
- spring-boot - Spring Boot Mapping 不起作用:MappedBy 引用了一个未知的目标实体属性
- swiftui - SwiftUI - 将数据从数组传递到结构
- reactjs - 使用 react-select 和 react-hook-form 返回正确的值
- c# - 插入垂直滚动条以查看选项卡项的内容
- botframework - 与 Microsoft Teams 集成时如何获取频道名称
- django - /account/ 处的 NoReverseMatch
- security - 这是一种可以接受的刷新 JWT 的方法吗?
- azure - 无法访问 azure devops 组织和 azure 门户
- azure - 前门显示服务器标头 Microsoft-IIS/10.0
- r - 输入`typ`不能在R中回收到大小