CharEncoding.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [IT], 保留所有权利;
  3. /* 模 块 名:公共模块,未做性能优化;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[IT];
  8. /* 日 期:[7/26/2016];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[IT];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __CHAR_ENCODING__
  19. #define __CHAR_ENCODING__
  20. #include <string>
  21. #include <vector>
  22. using namespace std;
  23. #ifndef _UNICODE
  24. typedef string TString;
  25. #else
  26. typedef wstring TString;
  27. #endif
  28. #pragma once
  29. namespace utilitySdk
  30. {
  31. class __declspec(dllexport) CharEncoding
  32. {
  33. public:
  34. // 将字符转化为对应的ASCII十进制值;
  35. static char CharToInt(char ch);
  36. // 将两个字符串转化成十六进制值;
  37. static char StrToBin(IN char (&str)[2]);
  38. static void GB2312ToUTF_8(string& pOut, const char *pText, int pLen);
  39. // 将ASCII字符串转成UNICODE字符串;
  40. static WCHAR* ASCII2UNICODE(IN LPCCH lpASCIIStr);
  41. static BOOL ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen);
  42. static BOOL ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT wstring &strResult);
  43. // 将UNICODE字符串转成ASCII字符串;
  44. static CHAR* UNICODE2ASCII(IN LPWCH lpUNICODEStr);
  45. static BOOL UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen);
  46. static BOOL UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT string &strResult);
  47. // 将UNICODE字符串转成UFT8字符串;
  48. static CHAR* UNICODE2UTF8(IN LPWCH lpUNICODEStr);
  49. static BOOL UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen);
  50. static BOOL UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT string &strResult);
  51. // 将ASCII字符串转成UTF8字符串;
  52. static CHAR* ASCII2UTF8(IN LPCCH lpASCIIStr);
  53. static BOOL ASCII2UTF8(IN LPCCH lpASCIIStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen);
  54. static BOOL ASCII2UTF8(IN LPCCH lpASCIIStr, OUT string &strResult);
  55. // 将UTF-8字符串转成UNICODE字符串;
  56. static WCHAR* UTF82UNICODE(IN LPCCH lpUTF8);
  57. static BOOL UTF82UNICODE(IN LPCCH lpUTF8, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen);
  58. static BOOL UTF82UNICODE(IN LPCCH lpUTF8, OUT wstring &strResult);
  59. // 将UTF-8字符串转成ASCII字符串;
  60. static CHAR* UTF82ASCII(IN LPCCH lpUTF8);
  61. static BOOL UTF82ASCII(IN LPCCH lpUTF8, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen);
  62. static BOOL UTF82ASCII(IN LPCCH lpUTF8, OUT string &strResult);
  63. // 将UTF-8编码成GB2312;
  64. static string UTF8IntoGB2313(IN CHAR* pUTF8Text, IN const INT& nUTF8TextLen);
  65. // 将GB2312编码成UTF-8;
  66. static string GB2312IntoUTF8(IN CHAR* pGB2312Text, IN const INT& nGB2312TextLen);
  67. // 将字符串编码成为GB2312编码格式的URL;
  68. static string EnCode_GB2312URL(IN CHAR* pText);
  69. static void EnCode_GB2312URL(IN CHAR* pText, OUT string& strResult);
  70. // 将字符串编码成为UTF-8编码格式的URL;
  71. static string EnCode_UTF8URL(IN const CHAR* pText);
  72. static void EnCode_UTF8URL(IN const CHAR* pText, OUT string& strResult);
  73. // 将字符串编码成为UNICODE编码格式的URL;
  74. static string EnCode_UNICODEURL(IN const CHAR* pText); // 未完成该函数;
  75. // 解码UTF-8编码格式的URL;
  76. static string DeCode_URLUTF8(IN const CHAR* pURLText);
  77. static void DeCode_URLUTF8(IN const CHAR* pURLText, OUT string& strResult);
  78. // 解码GB2312编码格式的URL;
  79. static string DeCode_URLGB2312(IN const CHAR* pURLText);
  80. static void DeCode_URLGB2312(IN const CHAR* pURLText, OUT string& strResult);
  81. // 解码UNICODE编码格式的URL;
  82. static string DeCode_URLUNICODE(IN const CHAR* pURLText);
  83. static void DeCode_URLUNICODE(IN const CHAR* pURLText, OUT string& strResult);
  84. };
  85. };
  86. #endif