Saya melihat bahwa banyak tempat di Internet menggunakan karakter seperti /u4e2d/u56fd saat mentransmisikan bahasa Cina, yang merupakan karakter yang dikodekan Unicode, dan saya ingin tahu apa konten spesifiknya, tetapi tidak mudah dilihat, jadi saya ingin memecahkan kode set karakter ini menjadi karakter normal. Pada awalnya, saya mengonversi format pengkodean melalui Encoding, dan menemukan bahwa itu tidak berfungsi, dan saya tidak dapat menyelesaikannya secara normal, dan kemudian saya mencari beberapa solusi decoding serupa di Internet, yang layak, tetapi saya menemukan bahwa itu agak merepotkan untuk menulis, dan jika saya memiliki kumpulan karakter Unicode, saya tidak dapat mengeluarkannya secara langsung, dan kemudian saya melihat dan melihatnya, dan akhirnya, saya menemukan dua metode kelas char: satu adalah char. ConvertFromUtf32, komentarnya mengatakan: Konversi bit kode Unicode yang ditentukan menjadi string yang dikodekan UTF-16, bukankah ini hanya decoding; Lainnya adalah arang. ConvertToUtf32, komentar: Metode ini untuk mengonversi karakter yang dikodekan UTF-16 pada posisi tertentu dalam string menjadi titik kode Unicode, ha, pada kenyataannya, ini adalah untuk mengubah karakter biasa menjadi kumpulan karakter Unicode.
- /// <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;
- }
Salin kode
|