gpt4 book ai didi

c# - 在 C# 中替换字符串中的 unicode 字符

转载 作者:太空狗 更新时间:2023-10-30 01:05:49 25 4
gpt4 key购买 nike

例如我有字符串:

string str = "ĄĆŹ - ćwrą";

我如何用它们的快捷方式替换 ĄĆŹ - ćą?该示例字符串的结果应为:

str = "\u0104\u0106\u0179 \u2013 \u0107wr\u0105"

有什么快速更换的方法吗?我不想为每个字符使用 .Replace...

最佳答案

像这样转换为 JSON 字符串比它应该的更麻烦,主要是因为您需要使用 Unicode 代码点,这实际上意味着调用 char.ConvertToUtf32。为此,您需要以某种方式处理代理对; System.Globalization.StringInfo 可以提供帮助。

下面是一个使用这些构建 block 执行转换的函数:

string str = "ĄĆŹ - ćwrą";

public string ToJsonString(string s)
{
var enumerator = StringInfo.GetTextElementEnumerator(s);
var sb = new StringBuilder();

while (enumerator.MoveNext())
{
var unicodeChar = enumerator.GetTextElement();
var codePoint = char.ConvertToUtf32(unicodeChar, 0);
if (codePoint < 0x80) {
sb.Append(unicodeChar);
}
else if (codePoint < 0xffff) {
sb.Append("\\u").Append(codePoint.ToString("x4"));
}
else {
sb.Append("\\u").Append((codePoint & 0xffff).ToString("x4"));
sb.Append("\\u").Append(((codePoint >> 16) & 0xffff).ToString("x4"));
}
}

return sb.ToString();
}

关于c# - 在 C# 中替换字符串中的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261181/

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