Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 24182|Respuesta: 2

[Fuente] Transcodificación por lotes de la versión c# de los conjuntos de caracteres Unicode a caracteres chinos (conversión mutua)

[Copiar enlace]
Publicado en 7/9/2015 10:57:18 | | |
He visto que en muchos sitios de Internet se usan caracteres como /u4e2d/u56fd al transmitir chino, que son caracteres codificados en Unicode, y quiero saber cuál es el contenido específico, pero no es fácil de ver, así que quiero decodificar este conjunto de caracteres en caracteres normales.
Al principio, convertí el formato de codificación a través de Encoding, y descubrí que no funcionaba, y no podía resolverlo normalmente, y luego busqué soluciones similares de decodificación en Internet, que eran factibles, pero descubrí que era un poco complicado de escribir, y si tenía lotes de caracteres Unicode, no podía sacarlos directamente, y luego los miré y los revisé, y finalmente encontré dos métodos de clases char: uno es char. ConvertFromUtf32, el comentario dice: Convierte el bit de código Unicode especificado a una cadena codificada en UTF-16, ¿no es esto solo decodificar? Otro es el carbón. ConvertToUtf32, comentario: Este método consiste en convertir caracteres codificados en UTF-16 en posiciones específicas de la cadena en puntos de código Unicode, jaja, de hecho, es convertir caracteres ordinarios en conjuntos de caracteres Unicode.

  1. /// <summary>  
  2.         /// 把Unicode解码为普通文字  
  3.         /// </summary>  
  4.         /// <param name="unicodeString">要解码的Unicode字符集</param>  
  5.         /// <returns>解码后的字符串</returns>  
  6.         public static string ConvertToGB(string unicodeString)
  7.         {
  8.             string[] strArray = unicodeString.Split(new string[] { @"\u" }, StringSplitOptions.None);
  9.             string result = string.Empty;
  10.             for (int i = 0; i < strArray.Length; i++)
  11.             {
  12.                 if (strArray[i].Trim() == "" || strArray[i].Length < 2 || strArray.Length <= 1)
  13.                 {
  14.                     result += i == 0 ? strArray[i] : @"\u" + strArray[i];
  15.                     continue;
  16.                 }
  17.                 for (int j = strArray[i].Length > 4 ? 4 : strArray[i].Length; j >= 2; j--)
  18.                 {
  19.                     try
  20.                     {
  21.                         result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(0, j), 16)) + strArray[i].Substring(j);
  22.                         break;
  23.                     }
  24.                     catch
  25.                     {
  26.                         continue;
  27.                     }
  28.                 }
  29.             }
  30.             return result;
  31.         }

  32.         /// <summary>  
  33.         /// 把汉字字符转码为Unicode字符集  
  34.         /// </summary>  
  35.         /// <param name="strGB">要转码的字符</param>  
  36.         /// <returns>转码后的字符</returns>  
  37.         public static string ConvertToUnicode(string strGB)
  38.         {
  39.             char[] chs = strGB.ToCharArray();
  40.             string result = string.Empty;
  41.             foreach (char c in chs)
  42.             {
  43.                 result += @"\u" + char.ConvertToUtf32(c.ToString(), 0).ToString("x");
  44.             }
  45.             return result;
  46.         }
Copiar código






Anterior:Se intercambian caracteres chinos JS y codificación Unicode Cifrado Unicode Descifrado Unicode
Próximo:¿Cómo hago mapeo de puertos en un router Cisco?
Publicado en 19/2/2016 23:12:53 |
Publicado en 12/11/2022 13:53:27 |
Responde a la publicación para expresar tu gratitud
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com