Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24182|Yanıt: 2

[Kaynak] Unicode karakter setlerinin c# versiyonunun Çin karakterlerine toplu olarak dönüştürülmesi (karşılıklı dönüşüm)

[Bağlantıyı kopyala]
Yayınlandı 7.09.2015 10:57:18 | | |
İnternette birçok yerde Çince iletilirken /u4e2d/u56fd gibi Unicode kodlu karakterler kullanıldığını gördüm ve içeriğin ne olduğunu bilmek istiyorum ama görmek kolay değil, bu yüzden bu karakter setini normal karakterlere dönüştürmek istiyorum.
Başta kodlama formatını Kodlama üzerinden dönüştürdüm ve çalışmadığını gördüm, normalde çözemiyordum, sonra internette benzer bazı kod çözme çözümleri aradım, bunlar mümkün oldu ama yazmanın biraz zahmetli olduğunu gördüm ve Unicode karakter partilerim varsa doğrudan çıktı veremiyordum, sonra bakıp baktım ve sonunda iki karakter sınıfı yöntemi buldum: biri char. ConvertFromUtf32, yorumda şöyle diyor: Belirtilen Unicode kod bitini UTF-16 kodlu bir diziye dönüştür, bu sadece kod çözme değil mi; Bir diğeri ise char. ConvertToUtf32, yorum: Bu yöntem, dizide belirli pozisyonlarda UTF-16 kodlanmış karakterleri Unicode kod noktalarına dönüştürmektir; aslında sıradan karakterleri Unicode karakter kümelerine dönüştürmektir.

  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.         }
Kopya kodu






Önceki:JS Çince karakterleri ve Unicode kodlaması değiş tokuş edilir Unicode şifreleme Unicode şifreleme
Önümüzdeki:Cisco router'da port eşlemesi nasıl yapılır?
Yayınlandı 19.02.2016 23:12:53 |
Yayınlandı 12.11.2022 13:53:27 |
Minnettarlığınızı ifade etmek için gönderiye yanıt verin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com