|
|
Geplaatst op 07-09-2015 10:57:18
|
|
|

Ik zag dat veel plekken op het internet karakters gebruiken zoals /u4e2d/u56fd bij het verzenden van Chinees, wat Unicode-gecodeerde tekens zijn, en ik wil weten wat de specifieke inhoud is, maar het is niet makkelijk te zien, dus ik wil deze tekenset decoderen in normale tekens. In het begin heb ik het coderingsformaat via Encoding geconverteerd, en ontdekte dat het niet werkte en ik het niet normaal kon oplossen, en toen zocht ik naar vergelijkbare decodeeroplossingen op internet, die haalbaar waren, maar ik ontdekte dat het wat lastig was om te schrijven, en als ik batches Unicode-tekens had, kon ik ze niet direct uitvoeren, en toen heb ik ze bekeken en uiteindelijk vond ik twee methoden van char-klassen: één is char. ConvertFromUtf32, zegt de opmerking: ConvertFromUtf32 converteert: Convert de gespecificeerde Unicode-codebit naar een UTF-16-gecodeerde string, is dit niet gewoon decoderen; Een ander is char. ConvertToUtf32, opmerking: Deze methode is bedoeld om UTF-16-gecodeerde tekens op gespecificeerde posities in de string om te zetten in Unicode-codepunten, ha, in feite is het om gewone tekens om te zetten in Unicode-tekensets.
- /// <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 kopiëren
|
Vorig:JS, Chinese tekens en Unicode-codering worden uitgewisseld: Unicode-encryptie, Unicode-decryptieVolgend:Hoe doe ik poortmapping op een Cisco-router?
|