.NET Core 下支持任意字节序列往返的1字节编码查询
解决方案
- 你可以直接使用 ISO-8859-1(Latin-1)编码,它是.NET Core 全平台默认内置支持的单字节编码,可覆盖
0x00到0xFF全部256个字节值,每个字节都一一对应唯一的 Unicode 码点,完全满足字节序列无损往返转换的要求。 - 代码调用方式:
Encoding.GetEncoding("iso-8859-1"),也可以使用代码页编号调用:Encoding.GetEncoding(28591)
该编码下,ASCII 范围内的字符(
0x00-0x7F)映射规则和 ASCII、UTF-8 完全一致,你需要匹配替换的数字字符不会出现识别错误,替换完成后再调用编码的GetBytes方法即可得到和原始字节序列完全一致的结果,不会出现字节丢失、替换的问题。
补充说明
如果确实需要使用 Windows-1256 这类编码实现跨平台支持,可先手动注册代码页提供程序:
- 先安装 NuGet 包
System.Text.Encoding.CodePages - 程序启动时执行注册代码:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - 之后即可跨平台调用
Encoding.GetEncoding("windows-1256")使用对应的编码。
内容的提问来源于stack exchange,提问作者OwnageIsMagic
相关产品推荐
相关产品推荐

