equal
deleted
inserted
replaced
|
1 #include "CLucene/StdHeader.h" |
|
2 #include "SimpleHTMLEncoder.h" |
|
3 CL_NS_DEF2(search,highlight) |
|
4 |
|
5 SimpleHTMLEncoder::SimpleHTMLEncoder(void) |
|
6 { |
|
7 } |
|
8 |
|
9 SimpleHTMLEncoder::~SimpleHTMLEncoder(void) |
|
10 { |
|
11 } |
|
12 |
|
13 TCHAR* SimpleHTMLEncoder::encodeText(TCHAR* originalText) |
|
14 { |
|
15 return htmlEncode(originalText); |
|
16 } |
|
17 |
|
18 TCHAR* SimpleHTMLEncoder::htmlEncode(TCHAR* plainText) |
|
19 { |
|
20 size_t plainTextLen = _tcslen(plainText); |
|
21 if (plainText == NULL || plainTextLen == 0) |
|
22 { |
|
23 return STRDUP_TtoT(_T("")); |
|
24 } |
|
25 |
|
26 CL_NS(util)::StringBuffer result(plainTextLen); |
|
27 |
|
28 for (int32_t index=0; index<plainTextLen; index++) |
|
29 { |
|
30 TCHAR ch = plainText[index]; |
|
31 |
|
32 switch (ch) |
|
33 { |
|
34 case '"': |
|
35 result.append(_T(""")); |
|
36 break; |
|
37 |
|
38 case '&': |
|
39 result.append(_T("&")); |
|
40 break; |
|
41 |
|
42 case '<': |
|
43 result.append(_T("<")); |
|
44 break; |
|
45 |
|
46 case '>': |
|
47 result.append(_T(">")); |
|
48 break; |
|
49 |
|
50 default: |
|
51 if (ch < 128) |
|
52 result.appendChar(ch); |
|
53 else{ |
|
54 result.append(_T("&#")); |
|
55 result.appendInt(ch); |
|
56 result.append(_T(";")); |
|
57 } |
|
58 } |
|
59 } |
|
60 |
|
61 return result.toString(); |
|
62 } |
|
63 |
|
64 CL_NS_END2 |