Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 24182|Відповідь: 2

[Джерело] Пакетне перекодування c#-версії наборів символів Unicode у китайські ієрогліфи (взаємне перетворення)

[Копіювати посилання]
Опубліковано 07.09.2015 10:57:18 | | |
Я бачив, що в багатьох місцях в Інтернеті використовують символи на кшталт /u4e2d/u56fd при передачі китайської мови, які є символами, закодованими в Unicode, і я хочу знати, який саме зміст, але це важко побачити, тому хочу розшифрувати цей набір символів у звичайні символи.
Спочатку я конвертував формат кодування через Encoding, але виявив, що це не працює, і я не міг розв'язати це нормально, потім шукав подібні рішення для декодування в Інтернеті, які були реальними, але виявив, що це трохи складно з написанням, і якщо у мене були партії символів Unicode, я не міг вивести їх напряму, потім я переглянув і подивився, і нарешті знайшов два методи класів символів: один — char. ConvertFromUtf32, у коментарі сказано: Конвертувати вказаний біт коду Unicode у рядок, закодований UTF-16, хіба це не просто декодування; Ще один — це обвуглювання. ConvertToUtf32, коментар: Цей метод полягає у конвертації символів, закодованих UTF-16 у визначених позиціях рядка, у точки коду Unicode, ха, фактично, це конвертація звичайних символів у набори символів 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.         }
Копія коду






Попередній:JS китайські ієрогліфи та кодування Unicode обмінюються шифруванням Unicode, розшифрування Unicode
Наступний:Як мені зробити мапінг портів на роутері Cisco?
Опубліковано 19.02.2016 23:12:53 |
Опубліковано 12.11.2022 13:53:27 |
Відповідайте на допис, щоб висловити свою вдячність
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com