gpt4 book ai didi

c# - 将 UTF-8 文字转换为可读字符串,C#?

转载 作者:行者123 更新时间:2023-11-30 21:28:05 25 4
gpt4 key购买 nike

我有一个字符串如下

const string nameString = @"\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1";

我试过:

var name = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(nameString));

不工作。

你可以在这里找到真实的角色:
https://utf8-chartable.de/unicode-utf8-table.pl?start=1536&number=128&names=-&utf8=string-literal
例如:U+0631\xd8\xb1

我们如何在 C# 中将其转换为可读字符串?

最佳答案

好吧,我们必须解析:每个"\xa9"应该被转换成byte 0xa9

  const string nameString = @"\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1";

我们可以借助正则表达式来做到这一点:

  byte[] data = Regex
.Matches(nameString, @"\\x(?<value>[0-9a-fA-F]{1,2})")
.Cast<Match>()
.Select(match => (Convert.ToByte(match.Groups["value"].Value, 16)))
.ToArray();

让我们看一下数据:

  // da a9 d8 a7 d8 b1 d8 a8 d8 b1
Console.WriteLine(string.Join(" ", data.Select(b => b.ToString("x2"))));

最后,我们要将data编码为string;假设我们应该使用 UTF8:

  string name = Encoding.UTF8.GetString(data);

Console.WriteLine(name);

结果:

  کاربر

关于c# - 将 UTF-8 文字转换为可读字符串,C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56834055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com