J’ai vu que de nombreux endroits sur Internet utilisent des caractères comme /u4e2d/u56fd pour transmettre du chinois, qui sont des caractères encodés Unicode, et je veux savoir quel est le contenu spécifique, mais ce n’est pas facile à voir, donc je veux décoder cet ensemble de caractères en caractères normaux. Au début, j’ai converti le format d’encodage via l’encodage, et j’ai constaté que ça ne fonctionnait pas, que je ne pouvais pas résoudre normalement, puis j’ai cherché des solutions de décodage similaires sur Internet, qui étaient faisables, mais j’ai trouvé que c’était un peu compliqué à écrire, et si j’avais des lots de caractères Unicode, je ne pouvais pas les produire directement, puis je les ai regardés et regardés, et finalement, j’ai trouvé deux méthodes de classes char : l’une est char. ConvertFromUtf32, le commentaire dit : Convertissez le bit de code Unicode spécifié en chaîne encodée UTF-16, n’est-ce pas juste un décodage ; Un autre est le char. ConvertToUtf32, commentaire : Cette méthode consiste à convertir des caractères encodés en UTF-16 à des positions spécifiées de la chaîne en points de code Unicode, ha, en fait, il s’agit de convertir des caractères ordinaires en ensembles de caractères Unicode.
- /// <summary>
- /// 把Unicode解码为普通文字
- /// </summary>
- /// <param name="unicodeString">要解码的Unicode字符集</param>
- /// <returns>解码后的字符串</returns>
- public static string ConvertToGB(string unicodeString)
- {
- string[] strArray = unicodeString.Split(new string[] { @"\u" }, StringSplitOptions.None);
- string result = string.Empty;
- for (int i = 0; i < strArray.Length; i++)
- {
- if (strArray[i].Trim() == "" || strArray[i].Length < 2 || strArray.Length <= 1)
- {
- result += i == 0 ? strArray[i] : @"\u" + strArray[i];
- continue;
- }
- for (int j = strArray[i].Length > 4 ? 4 : strArray[i].Length; j >= 2; j--)
- {
- try
- {
- result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(0, j), 16)) + strArray[i].Substring(j);
- break;
- }
- catch
- {
- continue;
- }
- }
- }
- return result;
- }
- /// <summary>
- /// 把汉字字符转码为Unicode字符集
- /// </summary>
- /// <param name="strGB">要转码的字符</param>
- /// <returns>转码后的字符</returns>
- public static string ConvertToUnicode(string strGB)
- {
- char[] chs = strGB.ToCharArray();
- string result = string.Empty;
- foreach (char c in chs)
- {
- result += @"\u" + char.ConvertToUtf32(c.ToString(), 0).ToString("x");
- }
- return result;
- }
Code de copie
|