Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 24182|Απάντηση: 2

[Πηγή] Μαζική διακωδικοποίηση της έκδοσης c# των συνόλων χαρακτήρων Unicode σε κινεζικούς χαρακτήρες (αμοιβαία μετατροπή)

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 7/9/2015 10:57:18 π.μ. | | |
Είδα ότι πολλά μέρη στο Διαδίκτυο χρησιμοποιούν χαρακτήρες όπως /u4e2d/u56fd κατά τη μετάδοση κινεζικών, οι οποίοι είναι κωδικοποιημένοι χαρακτήρες Unicode, και θέλω να μάθω ποιο είναι το συγκεκριμένο περιεχόμενο, αλλά δεν είναι εύκολο να το δεις, οπότε θέλω να αποκωδικοποιήσω αυτό το σύνολο χαρακτήρων σε κανονικούς χαρακτήρες.
Στην αρχή, μετέτρεψα τη μορφή κωδικοποίησης μέσω της Κωδικοποίησης και διαπίστωσα ότι δεν λειτουργούσε και δεν μπορούσα να το λύσω κανονικά, και μετά έψαξα για κάποιες παρόμοιες λύσεις αποκωδικοποίησης στο Διαδίκτυο, οι οποίες ήταν εφικτές, αλλά διαπίστωσα ότι ήταν λίγο ενοχλητικό να γράψω, και αν είχα παρτίδες χαρακτήρων Unicode, δεν μπορούσα να τους εξάγω απευθείας, και μετά τους κοίταξα και τους κοίταξα, και τελικά, βρήκα δύο μεθόδους κλάσεων χαρακτήρων: η μία είναι η char. ConvertFromUtf32, το σχόλιο λέει: Μετατρέψτε το καθορισμένο bit κώδικα 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
Επόμενος:Πώς μπορώ να κάνω αντιστοίχιση θυρών σε δρομολογητή Cisco;
Δημοσιεύτηκε στις 19/2/2016 11:12:53 μ.μ. |
Δημοσιεύτηκε στις 12/11/2022 1:53:27 μ.μ. |
Απαντήστε στην ανάρτηση για να εκφράσετε την ευγνωμοσύνη σας
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com