C# 如何将转义的unicode转换为常规格式的unicode
我有以下代码来帮助解析表情符号的unicode:C# 如何将转义的unicode转换为常规格式的unicode,c#,unicode,emoji,C#,Unicode,Emoji,我有以下代码来帮助解析表情符号的unicode: 进入Console.WriteLine()给了我这个表情符号看起来,你想把两个代理字符组合成一个Utf-32: 如果是你的情况,你可以这样说: 代码: public static IEnumerable<int> CombineSurrogates(string value) { if (null == value) yield break; // or throw new ArgumentNullException(na
进入
Console.WriteLine()
给了我这个表情符号看起来,你想把两个代理字符组合成一个Utf-32:
如果是你的情况,你可以这样说:
代码:
public static IEnumerable<int> CombineSurrogates(string value) {
if (null == value)
yield break; // or throw new ArgumentNullException(name(value));
for (int i = 0; i < value.Length; ++i) {
char current = value[i];
char next = i < value.Length - 1 ? value[i + 1] : '\0';
if (char.IsSurrogatePair(current, next)) {
yield return (char.ConvertToUtf32(current, next));
i += 1;
}
else
yield return (int)current;
}
}
public static string DecodeEncodedNonAsciiCharacters(string value) =>
string.Join(" ", CombineSurrogates(value).Select(code => $"U+{code:X4}"));
string data = "\uD83C\uDFCB\uD83C\uDFFF\u200D\u2642\uFE0F";
// If you want codes, uncomment the line below
//int[] codes = CombineSurrogates().ToArray(data);
string result = DecodeEncodedNonAsciiCharacters(data);
Console.Write(result);
U+1F3CB U+1F3FF U+200D U+2642 U+FE0F
结果:
public static IEnumerable<int> CombineSurrogates(string value) {
if (null == value)
yield break; // or throw new ArgumentNullException(name(value));
for (int i = 0; i < value.Length; ++i) {
char current = value[i];
char next = i < value.Length - 1 ? value[i + 1] : '\0';
if (char.IsSurrogatePair(current, next)) {
yield return (char.ConvertToUtf32(current, next));
i += 1;
}
else
yield return (int)current;
}
}
public static string DecodeEncodedNonAsciiCharacters(string value) =>
string.Join(" ", CombineSurrogates(value).Select(code => $"U+{code:X4}"));
string data = "\uD83C\uDFCB\uD83C\uDFFF\u200D\u2642\uFE0F";
// If you want codes, uncomment the line below
//int[] codes = CombineSurrogates().ToArray(data);
string result = DecodeEncodedNonAsciiCharacters(data);
Console.Write(result);
U+1F3CB U+1F3FF U+200D U+2642 U+FE0F
@“\\u(?[a-fA-F0-9]{4})”
注意f
和f
帮助我完成这一点我需要帮助将表情符号与此json文件匹配,以便我可以获得与该表情符号相关联的名称我知道它可以通过json.Net完成,但idk如何实现它似乎您想要将两个代理字符组合成一个Utf-32。如果是你的情况,请看我的答案