Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24182|Отговор: 2

[Източник] Пакетно транскодиране на c# версията на Unicode знаците към китайски знаци (взаимно преобразуване)

[Копирай линк]
Публикувано в 7.09.2015 г. 10:57:18 ч. | | |
Видях, че много места в интернет използват знаци като /u4e2d/u56fd при предаване на китайски, които са кодирани в Unicode, и искам да знам какво точно е съдържанието, но не е лесно да се види, затова искам да декодирам този набор от знаци в нормални знаци.
Първоначално конвертирах формата за кодиране през Encoding и установих, че не работи и не мога да го реша нормално, след което потърсих подобни решения за декодиране в интернет, които бяха възможни, но установих, че е малко трудно за писане, а ако имах партиди от Unicode знаци, не можех да ги извеждам директно, после ги разглеждах и накрая намерих два метода за класове на char: единият е char. ConvertFromUtf32, коментарът казва: Конвертирайте зададения бит на Unicode в UTF-16 кодиран низ, не е ли това просто декодиране; Друг е Char. 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 декриптиране
Следващ:Как да направя порт mapping на Cisco рутер?
Публикувано в 19.02.2016 г. 23:12:53 ч. |
Публикувано в 12.11.2022 г. 13:53:27 ч. |
Отговорете на публикацията, за да изразите своята благодарност
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com