Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 24182|Antwoord: 2

[Bron] Batchtranscoding van de c#-versie van Unicode-tekensets naar Chinese karakters (wederzijdse conversie)

[Link kopiëren]
Geplaatst op 07-09-2015 10:57:18 | | |
Ik zag dat veel plekken op het internet karakters gebruiken zoals /u4e2d/u56fd bij het verzenden van Chinees, wat Unicode-gecodeerde tekens zijn, en ik wil weten wat de specifieke inhoud is, maar het is niet makkelijk te zien, dus ik wil deze tekenset decoderen in normale tekens.
In het begin heb ik het coderingsformaat via Encoding geconverteerd, en ontdekte dat het niet werkte en ik het niet normaal kon oplossen, en toen zocht ik naar vergelijkbare decodeeroplossingen op internet, die haalbaar waren, maar ik ontdekte dat het wat lastig was om te schrijven, en als ik batches Unicode-tekens had, kon ik ze niet direct uitvoeren, en toen heb ik ze bekeken en uiteindelijk vond ik twee methoden van char-klassen: één is char. ConvertFromUtf32, zegt de opmerking: ConvertFromUtf32 converteert: Convert de gespecificeerde Unicode-codebit naar een UTF-16-gecodeerde string, is dit niet gewoon decoderen; Een ander is char. ConvertToUtf32, opmerking: Deze methode is bedoeld om UTF-16-gecodeerde tekens op gespecificeerde posities in de string om te zetten in Unicode-codepunten, ha, in feite is het om gewone tekens om te zetten in Unicode-tekensets.

  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.         }
Code kopiëren






Vorig:JS, Chinese tekens en Unicode-codering worden uitgewisseld: Unicode-encryptie, Unicode-decryptie
Volgend:Hoe doe ik poortmapping op een Cisco-router?
Geplaatst op 19-02-2016 23:12:53 |
Geplaatst op 12-11-2022 13:53:27 |
Reageer op het bericht om je dankbaarheid te uiten
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com