이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 24182|회답: 2

[출처] C# 버전의 유니코드 문자 집합을 중국어 문자로 배치 트랜스코딩(상호 변환)

[링크 복사]
게시됨 2015. 9. 7. 오전 10:57:18 | | |
인터넷에서 많은 곳에서 중국어 전송 시 /u4e2d/u56fd 같은 유니코드 인코딩 문자를 사용하는 것을 봤는데, 구체적인 내용이 무엇인지 알고 싶지만 쉽게 볼 수 없어서 이 문자 집합을 일반 문자로 해석하고 싶습니다.
처음에는 Encoding으로 인코딩 형식을 변환했는데 작동하지 않았고 정상적으로 풀 수 없었어요. 그러다 인터넷에서 비슷한 디코딩 방법을 찾아봤는데, 쓸 만했지만 작성이 좀 까다로웠고, 유니코드 문자 묶음이 있으면 직접 출력할 수 없었어요. 계속 살펴보니 두 가지 char 클래스 방법을 찾았어요: 하나는 char입니다. ConvertFromUtf32, 댓글은 이렇게 말합니다: 지정된 유니코드 코드 비트를 UTF-16 인코딩된 문자열로 변환하세요, 이게 단순히 디코딩 아닌가요? 또 다른 것은 숯입니다. ConvertToUtf32, 주석: 이 방법은 문자열 내 지정된 위치에서 UTF-16 인코딩된 문자를 유니코드 코드 포인트로 변환하는 것입니다. 하하, 사실 일반 문자를 유니코드 문자 집합으로 변환하는 것입니다.

  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 중국어 문자와 유니코드 인코딩이 교환됩니다. 유니코드 암호화, 유니코드 복호화
다음:Cisco 라우터에서 포트 매핑을 어떻게 하나요?
게시됨 2016. 2. 19. 오후 11:12:53 |
게시됨 2022. 11. 12. 오후 1:53:27 |
감사의 마음을 표현하기 위해 게시물에 답글을 달아 주세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com