Es redzēju, ka daudzās vietās internetā tiek izmantotas tādas rakstzīmes kā /u4e2d/u56fd, pārraidot ķīniešu valodu, kas ir Unicode kodētas rakstzīmes, un es gribu uzzināt, kāds ir konkrētais saturs, bet to nav viegli redzēt, tāpēc es vēlos atšifrēt šo rakstzīmju kopu parastās rakstzīmēs. Sākumā es konvertēju kodējuma formātu, izmantojot kodējumu, un atklāju, ka tas nedarbojas, un es nevarēju to normāli atrisināt, un tad es meklēju dažus līdzīgus dekodēšanas risinājumus internetā, kas bija iespējami, bet es atklāju, ka tas bija nedaudz apgrūtinoši rakstīt, un, ja man bija Unicode rakstzīmju partijas, es nevarēju tās tieši izvadīt, un tad es paskatījos un apskatīju tās, un, visbeidzot, es atradu divas char klases metodes: viena ir char. ConvertFromUtf32, komentārs saka: Konvertējiet norādīto Unicode koda bitu uz UTF-16 kodētu virkni, vai tā nav tikai dekodēšana; Vēl viens ir char. ConvertToUtf32, komentārs: Šī metode ir pārvērst UTF-16 kodētās rakstzīmes noteiktās virknes pozīcijās Unicode koda punktos, ha, patiesībā, tas ir pārvērst parastās rakstzīmes Unicode rakstzīmju kopās.
- /// <summary>
- /// 把Unicode解码为普通文字
- /// </summary>
- /// <param name="unicodeString">要解码的Unicode字符集</param>
- /// <returns>解码后的字符串</returns>
- public static string ConvertToGB(string unicodeString)
- {
- string[] strArray = unicodeString.Split(new string[] { @"\u" }, StringSplitOptions.None);
- string result = string.Empty;
- for (int i = 0; i < strArray.Length; i++)
- {
- if (strArray[i].Trim() == "" || strArray[i].Length < 2 || strArray.Length <= 1)
- {
- result += i == 0 ? strArray[i] : @"\u" + strArray[i];
- continue;
- }
- for (int j = strArray[i].Length > 4 ? 4 : strArray[i].Length; j >= 2; j--)
- {
- try
- {
- result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(0, j), 16)) + strArray[i].Substring(j);
- break;
- }
- catch
- {
- continue;
- }
- }
- }
- return result;
- }
- /// <summary>
- /// 把汉字字符转码为Unicode字符集
- /// </summary>
- /// <param name="strGB">要转码的字符</param>
- /// <returns>转码后的字符</returns>
- public static string ConvertToUnicode(string strGB)
- {
- char[] chs = strGB.ToCharArray();
- string result = string.Empty;
- foreach (char c in chs)
- {
- result += @"\u" + char.ConvertToUtf32(c.ToString(), 0).ToString("x");
- }
- return result;
- }
Kopēt kodu
|