この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 24182|答える: 2

[出典] C#版Unicode文字セットのバッチトランスコード(相互変換)

[リンクをコピー]
掲載地 2015/09/07 10:57:18 | | |
インターネット上の多くの場所で、中国語を送る際に/u4e2dやu56fdのようなUnicodeでエンコードされた文字を使っているのを見かけました。具体的な内容が知りたいのですが、見つけにくいので、この文字セットを通常の文字に復号したいと思っています。
最初はエンコーディングでエンコーディング形式を変換しましたが、うまくいかず、普通に解けませんでした。その後、インターネットで似たようなデコード方法を探しましたが、実現可能でした。しかし、書くのが少し面倒で、Unicode文字のバッチがあっても直接出力できないことが分かりました。そして何度も調べてみたところ、最終的にcharクラスの2つの方法を見つけました。1つはcharです。 ConvertFromUtf32、そのコメントにはこう書かれています:指定されたUnicodeコードビットをUTF-16エンコードの文字列に変換してください。これは単なるデコードではないでしょうか? もう一つは焦げです。 ConvertToUtf32、コメント:この方法は、文字列の指定された位置にあるUTF-16エンコード文字をUnicodeの符号点に変換するものです。実は、普通の文字をUnicodeの文字セットに変換するためのものです。

  1. /// <summary>  
  2.         /// 把Unicode解码为普通文字  
  3.         /// </summary>  
  4.         /// <param name="unicodeString">要解码的Unicode字符集</param>  
  5.         /// <returns>解码后的字符串</returns>  
  6.         public static string ConvertToGB(string unicodeString)
  7.         {
  8.             string[] strArray = unicodeString.Split(new string[] { @"\u" }, StringSplitOptions.None);
  9.             string result = string.Empty;
  10.             for (int i = 0; i < strArray.Length; i++)
  11.             {
  12.                 if (strArray[i].Trim() == "" || strArray[i].Length < 2 || strArray.Length <= 1)
  13.                 {
  14.                     result += i == 0 ? strArray[i] : @"\u" + strArray[i];
  15.                     continue;
  16.                 }
  17.                 for (int j = strArray[i].Length > 4 ? 4 : strArray[i].Length; j >= 2; j--)
  18.                 {
  19.                     try
  20.                     {
  21.                         result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(0, j), 16)) + strArray[i].Substring(j);
  22.                         break;
  23.                     }
  24.                     catch
  25.                     {
  26.                         continue;
  27.                     }
  28.                 }
  29.             }
  30.             return result;
  31.         }

  32.         /// <summary>  
  33.         /// 把汉字字符转码为Unicode字符集  
  34.         /// </summary>  
  35.         /// <param name="strGB">要转码的字符</param>  
  36.         /// <returns>转码后的字符</returns>  
  37.         public static string ConvertToUnicode(string strGB)
  38.         {
  39.             char[] chs = strGB.ToCharArray();
  40.             string result = string.Empty;
  41.             foreach (char c in chs)
  42.             {
  43.                 result += @"\u" + char.ConvertToUtf32(c.ToString(), 0).ToString("x");
  44.             }
  45.             return result;
  46.         }
コードをコピーします






先の:JSの中国語文字とUnicode符号化が交換されます。Unicode暗号化、Unicode復号
次に:Ciscoルーターでポートマッピングはどうやって行いますか?
掲載地 2016/02/19 23:12:53 |
掲載地 2022/11/12 13:53:27 |
感謝の気持ちを伝えるために投稿に返信してください
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com