c# - 1字节8位编码
问题描述
我需要System.String
使用一些未知的兼容 ASCII 的 1 字节编码从文件中创建,以用正则表达式替换文本中的一些数字,但Encoding.ASCII
它是 7 位的,并且 Utf-8 是多字节的,因此它不会往返返回相同的字节序列。
.Net Core 中是否有可以往返任何字节序列的编码?
UPD:Windows-1256 字符集看起来很有希望,但它仅限于 Windows。
解决方案
首先,如果您不知道编码,则使用字符串更像是一种技巧,而不是一种解决方案。我想它可以更快并且可能更容易,但是对于更强大和更干净的解决方案,我只会处理 byte[] 或类似的东西。如果它是一次性解决方案,字符串会很好。
如果您真的想在这里使用字符串,我建议您查看 windows/cp 系列或 ISO 8859 系列的所有编码。例如在我的电脑上,我可以使用iso-8859-1
. Windows 1256
也可以,在 Linux 上通常称为cp 1256
(CP 表示代码页)。
但是,不能保证所有平台都支持该编码,AFAIK .NET 只保证 UTF 和 Unicode。如果您希望在任何地方都可以使用此编码,请考虑使用这样的 nuget 包:https ://www.nuget.org/packages/System.Text.Encoding.CodePages/
推荐阅读
- phpstorm - 一个文件没有语法颜色
- sql-server - 当右表中存在 NULL 时返回左表的所有结果,当右表中不存在 null 时返回内部连接的结果
- c++ - 检查哪个子类是父类对象
- c++ - 分配内存并调用 C++ 回调的 Rust 函数崩溃
- linux - 如何分析进程中的内存分布?
- php - 无法调用方法在 Laravel 中返回 VIEW
- sass - Sass/css 不会在 cloud9 轮询回退错误中呈现
- android - 用于跨应用程序共享数据的 Content Provider vs SharedUserId vs Global Process
- android - Android Stackoverflow 错误:ViewGroup.jumpDrawablesToCurrentState
- javascript - 将 ajax 请求到返回“未定义”的 php 文件