MyEncodingInfo.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace FastReport.Utils
  5. {
  6. internal class MyEncodingInfo
  7. {
  8. #region Private Fields
  9. private int codePage;
  10. private string displayName;
  11. private string name;
  12. #endregion Private Fields
  13. #region Public Properties
  14. public int CodePage
  15. {
  16. get
  17. {
  18. return codePage;
  19. }
  20. set
  21. {
  22. codePage = value;
  23. }
  24. }
  25. public string DisplayName
  26. {
  27. get { return displayName; }
  28. set
  29. {
  30. displayName = value;
  31. }
  32. }
  33. public string Name
  34. {
  35. get
  36. {
  37. return name;
  38. }
  39. set
  40. {
  41. name = value;
  42. }
  43. }
  44. #endregion Public Properties
  45. #region Public Constructors
  46. public MyEncodingInfo(Encoding encoding)
  47. {
  48. DisplayName = encoding.EncodingName;
  49. Name = encoding.WebName;
  50. CodePage = encoding.CodePage;
  51. }
  52. public MyEncodingInfo(EncodingInfo info)
  53. {
  54. DisplayName = info.DisplayName;
  55. Name = info.Name;
  56. CodePage = info.CodePage;
  57. }
  58. #endregion Public Constructors
  59. #region Public Methods
  60. public static IEnumerable<MyEncodingInfo> GetEncodings()
  61. {
  62. List<MyEncodingInfo> encodings = new List<MyEncodingInfo>();
  63. foreach (EncodingInfo info in Encoding.GetEncodings())
  64. {
  65. encodings.Add(new MyEncodingInfo(info));
  66. }
  67. encodings.Sort(new Comparison<MyEncodingInfo>(compareEncoding)); ;
  68. return encodings;
  69. }
  70. public override string ToString()
  71. {
  72. return DisplayName;
  73. }
  74. #endregion Public Methods
  75. #region Private Methods
  76. private static int compareEncoding(MyEncodingInfo x, MyEncodingInfo y)
  77. {
  78. if (x != null && y != null)
  79. {
  80. return String.Compare(x.DisplayName, y.DisplayName);
  81. }
  82. return 0;
  83. }
  84. #endregion Private Methods
  85. }
  86. }