Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将转义的unicode转换为常规格式的unicode_C#_Unicode_Emoji - Fatal编程技术网

C# 如何将转义的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

我有以下代码来帮助解析表情符号的unicode:


进入
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。如果是你的情况,请看我的答案