■ EncodingFinder 클래스의 AddMapping 정적 메소드를 사용해 커스텀 인코딩을 추가하는 방법을 보여준다.
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
using System.Text; using OpenPop.Mime.Decode; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 커스텀 폴백 디코더 처리하기 - CustomFallbackDecoder(characterSet) /// <summary> /// 커스텀 폴백 디코더 처리하기 /// </summary> /// <param name="characterSet">문자 세트</param> /// <returns>인코딩</returns> private static Encoding CustomFallbackDecoder(string characterSet) { if(characterSet.StartsWith("foo")) { return Encoding.ASCII; } return Encoding.UTF8; } #endregion #region 커스텀 인코딩 추가하기 - AddCustomEncoding(customEncoding) /// <summary> /// 커스텀 인코딩 추가하기 /// </summary> /// <param name="customEncoding">커스텀 인코딩</param> private static void AddCustomEncoding(Encoding customEncoding) { EncodingFinder.AddMapping("iso-9999-9" , Encoding.UTF8 ); EncodingFinder.AddMapping("specialEncoding", customEncoding); EncodingFinder.FallbackDecoder = CustomFallbackDecoder; } #endregion #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { AddCustomEncoding(Encoding.Unicode); } #endregion } } |