-
Notifications
You must be signed in to change notification settings - Fork 2
/
HtmlUtility.cs
98 lines (87 loc) · 3.67 KB
/
HtmlUtility.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
namespace Dul
{
public class HtmlUtility
{
#region Encode() 함수
/// <summary>
/// HTML을 실행하지 않고 소스 그대로 표현해서 바로 웹 페이지에 보여줌
/// </summary>
/// <param name="strContent">HTML 태그가 포함된 문자열</param>
/// <returns>태그가 인코드되어 소스 그대로 표현될 문자열</returns>
public static string Encode(string strContent)
{
string strTemp = "";
if (String.IsNullOrEmpty(strContent))
{
strTemp = "";
}
else
{
strTemp = strContent;
strTemp = strTemp.Replace("&", "&");
strTemp = strTemp.Replace(">", ">");
strTemp = strTemp.Replace("<", "<");
//strTemp = strTemp.Replace("\r\n", "<br />");
strTemp = strTemp.Replace("\n", "<br />"); // \r\n 최근 브라우저 인식 오류
strTemp = strTemp.Replace("\"", """);
}
return strTemp;
}
#endregion
#region EncodeWithTabAndSpace() 함수
/// <summary>
/// HTML을 실행하지 않고 소스 그대로 표현해서 바로 웹 페이지에 보여줌
/// 추가적으로 탭과 공백도 HTML 코드로 처리해서 출력
/// 예) 게시판의 이름, 제목 등에서 HTML 사용 금지
/// </summary>
/// <param name="strContent">HTML 태그가 포함된 문자열</param>
/// <returns>태그가 인코드되어 소스 그대로 표현될 문자열</returns>
public static string EncodeWithTabAndSpace(string strContent)
{
return Encode(strContent)
.Replace("\t", " ")
.Replace(" " + " ", " ");
}
#endregion
}
}
//#region 글의 내용(Content) 출력 부분
//string strContent = "";
//switch (Encoding)
//{
// case "Text/HTML":
// strContent = Content; //.Replace("<" + "%","<%").Replace("%" + ">", "%>").Replace("<!--", "<!--").Replace("-->", "-->");
// Response.Write(strContent);
// break;
// case "Plain-Text":
// // 검색 필드가 Content이면, 검색 쿼리를 다른 색으로 보여준다.
// if (Request["SearchField"] == "Content")
// {
// strContent = Dul.HtmlUtility.EncodeWithTabAndSpace(Content).Replace(Request["SearchQuery"], "<span style='color:#ff5555;'>" + Request["SearchQuery"] + "</span>");
// Response.Write(strContent);
// }
// else
// {
// strContent = Content;
// Response.Write(Dul.HtmlUtility.EncodeWithTabAndSpace(strContent));
// }
// break;
// case "Mixed-Text":
// strContent = Content.Replace("<" + "%", "<%").Replace("%" + ">", "%>").Replace("<!--", "<!--").Replace("-->", "-->").Replace("\n", "<br />").Replace("\t", " ").Replace(" " + " ", " ");
// Response.Write(strContent);
// break;
// default:
// // 검색 필드가 Content이면, 검색 쿼리를 다른 색으로 보여준다.
// if (Request["SearchField"] == "Content")
// {
// strContent = Dul.HtmlUtility.EncodeWithTabAndSpace(Content).Replace(Request["SearchQuery"], "<span style='color:#ff5555;'>" + Request["SearchQuery"] + "</span>");
// Response.Write(strContent);
// }
// else
// {
// strContent = Content;
// Response.Write(Dul.HtmlUtility.EncodeWithTabAndSpace(strContent));
// }
// break;
//}