Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 24182|Odpověď: 2

[Zdroj] Dávkové překódování verzí znaků Unicode v C# na čínské znaky (vzájemná konverze)

[Kopírovat odkaz]
Zveřejněno 07.09.2015 10:57:18 | | |
Viděl jsem, že mnoho míst na internetu používá znaky jako /u4e2d/u56fd při přenosu čínštiny, což jsou znaky kódované Unicode, a chci vědět, jaký konkrétní obsah to je, ale není to snadné vidět, takže chci tuto znakovou sadu rozluštit do běžných znaků.
Nejprve jsem převedl kódovací formát pomocí Encodingu, ale zjistil jsem, že to nefunguje a nemohu to vyřešit normálně, pak jsem hledal podobná dekódovací řešení na internetu, která byla proveditelná, ale zjistil jsem, že je to trochu obtížné napsat, a pokud jsem měl dávky Unicode znaků, nemohl jsem je přímo vygenerovat, pak jsem se na ně podíval a nakonec jsem našel dvě metody tříd znaků: jedna je char. ConvertFromUtf32, komentář říká: Převeďte specifikovaný bit Unicode kódu na řetězec kódovaný v UTF-16, není to jen dekódování; Další je Char. ConvertToUtf32, komentář: Tato metoda slouží k převodu znaků kódovaných UTF-16 na určených pozicích v řetězci na Unicode kódové body, ha, ve skutečnosti jde o převod běžných znaků na Unicode znakové sady.

  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.         }
Kopírovat kód






Předchozí:JS Čínské znaky a Unicode kódování se vyměňují Unicode šifrování, Unicode dešifrování
Další:Jak mám udělat mapování portů na Cisco routeru?
Zveřejněno 19.02.2016 23:12:53 |
Zveřejněno 12.11.2022 13:53:27 |
Odpovězte na příspěvek a vyjádřte svou vděčnost
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com