Jag såg att många platser på internet använder tecken som /u4e2d/u56fd när man sänder kinesiska, vilket är Unicode-kodade tecken, och jag vill veta vad det specifika innehållet är, men det är inte lätt att se, så jag vill avkoda denna teckenuppsättning till vanliga tecken. Först konverterade jag kodningsformatet via Encoding, och upptäckte att det inte fungerade, och jag kunde inte lösa det normalt, och sedan sökte jag efter liknande avkodningslösningar på Internet, som var genomförbara, men jag upptäckte att det var lite besvärligt att skriva, och om jag hade batcher med Unicode-tecken kunde jag inte mata ut dem direkt, men sedan tittade jag och tittade på dem, och till slut hittade jag två metoder för char-klasser: den ena är char. ConvertFromUtf32, säger kommentaren: Konvertera den angivna Unicode-kodbiten till en UTF-16-kodad sträng, är inte detta bara avkodning; En annan är char. ConvertToUtf32, kommentar: Denna metod är att konvertera UTF-16-kodade tecken på angivna positioner i strängen till Unicode-kodpunkter, ha, faktiskt är det för att omvandla vanliga tecken till Unicode-teckenuppsättningar.
- /// <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;
- }
Kopiera koden
|