See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 24182|Vastuse: 2

[Allikas] Unicode'i märgistiku c# versiooni partiitranskodeerimine hiina märkideks (vastastikune teisendus)

[Kopeeri link]
Postitatud 07.09.2015 10:57:18 | | |
Nägin, et paljud kohad internetis kasutavad hiina keele edastamisel tähemärke nagu /u4e2d/u56fd, mis on Unicode'iga kodeeritud märgid, ja ma tahan teada, mis on konkreetne sisu, aga seda pole lihtne näha, seega tahan selle märgikomplekti dekodeerida tavalisteks märkideks.
Alguses konverteerisin kodeerimisformaadi kodeerimise kaudu ja avastasin, et see ei töötanud ning ma ei suutnud seda normaalselt lahendada, siis otsisin internetist sarnaseid dekodeerimislahendusi, mis olid teostatavad, kuid leidsin, et kirjutamine oli veidi keeruline ning kui mul oli Unicode'i tähemärkide partiid, ei saanud ma neid otse välja anda, siis vaatasin ja lõpuks leidsin kaks karakterklassi meetodit: üks on char. ConvertFromUtf32, kommentaar ütleb: Teisenda määratud Unicode koodibitt UTF-16 kodeeritud stringiks, kas see pole lihtsalt dekodeerimine; Teine on kõrbe. ConvertToUtf32, kommentaar: See meetod on UTF-16 kodeeritud tähemärkide teisendamiseks määratud kohtades stringis Unicode'i koodipunktideks, ha, tegelikult tähendab see tavaliste märkide teisendamist Unicode'i märgistikuteks.

  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.         }
Kopeeri kood






Eelmine:JS hiina tähemärgid ja Unicode'i kodeerimine vahetatakse Unicode'i krüpteerimisega Unicode'i dekrüpteerimisega
Järgmine:Kuidas teha pordikaardistust Cisco ruuteril?
Postitatud 19.02.2016 23:12:53 |
Postitatud 12.11.2022 13:53:27 |
Vasta postitusele, et avaldada oma tänu
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com