c# - 如何使用 Unicode 从字符串中拆分数据?
问题描述
早上好,我有一个问题。例如,我需要使用 Unicode 从字符串中恢复数据
"\u001f\u0001\u0013FERREIRA RAMOS MUZI\u001f\u0002\0\u001f\u0003\aRICARDO\u001f\u0004\u0003URY\u001f\u0005\b09031979\u001f\u0006\u000eMONTEVIDEO/URY\u001f\a\b34946682\u001f\ b\u0004\"\a \u0016\u001f\t\b22072026\u001f\n\0"
以字节为单位的字符串
1F011346455252454952412052414D4F53204D555A491F02001F03075249434152444F1F04035552591F050830393033313937391F060E4D4F4E5445564944454F2F5552591F070833343934363638321F0804220720161F090832323037323032361F0A00
例如,我需要在 ArrayList 或 Arraystring 中恢复 Name、LastName 等
字符串 [] 数组 = {“斯蒂芬”、“国王”、“11301958”、“纽约/美国”}
如果我使用我的问题
System.Text.Encoding.UTF8.GetString(ByteArray);
要获取数据,我只获取姓名和姓氏,没有日期或来自哪里。
我怎样才能从这个字符串中得到它?
解决方案
您可能必须创建一个自定义解析器:
byte [] bytes = // Your data here....
// Parser
List<string> words = new List<string>();
for (var i = 0; i < bytes.Length; i++) {
if (0x1F == bytes[i]) {
int index = bytes[i+1]; // Ignoring this
int len = bytes[i+2];
// Convert bytes to string
words.Add(System.Text.Encoding.UTF8.GetString(bytes, i+3, len));
i += len + 2;
}
}
Console.WriteLine(String.Join("\n", words.ToArray()));
输出:
费雷拉·拉莫斯·穆兹 里卡多 乌里 09031979 蒙得维的亚/乌里 34946682 " - 这里有一些不可打印的字符 22072026
看起来有些字段需要特殊解析。
推荐阅读
- .htaccess - 将“子文件夹”重定向到新 URL;Joomla 和 .htaccess
- javascript - React Native 后台计时器永不停止
- sql - 将 2 个表合并为 1 个(SQL Server)的最佳方法是什么,只有一个共同的日期时间类型的列
- postgresql - 复制数据或将数据从 CSV 导入 PostgreSQL 时出错
- python - 将列表与 CSV 文件进行比较
- python - Value_counts 未返回所需的输出
- php - 访问部署在共享主机上的公共目录 laravel 5.5
- javascript - Vue:如何在 mapFields 中使用组件道具
- python-3.x - 从 Target 抓取产品和商店信息
- linux-mint - 如何在 Linux Mint 中正确构建 RTEMS 4.11 环境