|
|
Veröffentlicht am 07.09.2015 10:57:18
|
|
|

Ich habe gesehen, dass viele Orte im Internet Zeichen wie /u4e2d/u56fd beim Senden von Chinesisch verwenden, das sind Unicode-codierte Zeichen, und ich möchte wissen, was der spezifische Inhalt ist, aber es ist nicht leicht zu erkennen, deshalb möchte ich diesen Zeichensatz in normale Zeichen entschlüsseln. Zuerst konvertierte ich das Kodierungsformat über Encoding, stellte fest, dass es nicht funktionierte und ich es nicht normal lösen konnte, dann suchte ich im Internet nach ähnlichen Dekodierungslösungen, die machbar waren, aber ich fand, dass es etwas umständlich war zu schreiben, und wenn ich Chargen von Unicode-Zeichen hatte, konnte ich sie nicht direkt ausgeben, dann schaute ich immer wieder nach, und schließlich fand ich zwei Methoden von Char-Klassen: eine ist char. ConvertFromUtf32, sagt der Kommentar: Konvertiere das angegebene Unicode-Codebit in einen UTF-16-codierten String, ist das nicht einfach das Dekodieren; Ein weiterer ist Char. ConvertToUtf32, Kommentar: Diese Methode dient dazu, UTF-16-codierte Zeichen an bestimmten Stellen im String in Unicode-Codepunkte umzuwandeln, also tatsächlich sind gewöhnliche Zeichen in Unicode-Zeichensätze umgewandelt.
- /// <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;
- }
Code kopieren
|
Vorhergehend:JS, chinesische Zeichen und Unicode-Codierung werden ausgetauscht, Unicode-Verschlüsselung, Unicode-EntschlüsselungNächster:Wie mache ich Port-Mapping auf einem Cisco-Router?
|