Changeset 6
- Timestamp:
- 09/19/10 12:07:50 (20 months ago)
- File:
-
- 1 edited
-
trunk/sample/guessutf8.cpp (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/sample/guessutf8.cpp
r2 r6 1 /** 2 @file guessutf8.cpp 3 @brief libiconv ðp¢½¶Zbg©®F¯ÌTv (àR[h UCS4 Å) 4 @author T.MURACHI (Toshiyuki Murayama) / (C)2010 Harapeko Inc. 5 */ 6 1 7 #include <string> 2 8 #include <map> … … 9 15 using namespace std; 10 16 17 /// ¶ðµ¤àR[h^ 11 18 typedef uint32_t ucs4_t; 12 19 typedef basic_string<ucs4_t, char_traits<ucs4_t>, allocator<ucs4_t> > ucs4string; 13 20 21 /** 22 @brief fR[háONX 23 */ 14 24 class UcsDecoderException : public exception 15 25 { … … 24 34 }; 25 35 36 /** 37 @brief GR[háONX 38 */ 26 39 class UcsEncoderException : public exception 27 40 { … … 36 49 }; 37 50 51 /** 52 @brief fR[_NX 53 54 t@C©çÇÝñ¾¶ñf[^ðAàR[h̶ñÉÏ··éB 55 Ï·ÉA³Ì¶ñf[^̶Zbgð©®F¯·éB 56 */ 38 57 class UcsDecoder 39 58 { … … 42 61 size_t src_size; 43 62 63 // ftHgRXgN^ARs[RXgN^AãüZqÍgpÖ~ 44 64 UcsDecoder(); 45 65 UcsDecoder(const UcsDecoder &); 46 66 UcsDecoder &operator =(const UcsDecoder &); 47 67 68 /// ¶R[hZbgÌXg 48 69 static char const* const ENCODE_LIST[]; 70 49 71 50 72 typedef map<string, int> IllSeqCountMap; … … 53 75 54 76 public: 77 /** 78 @brief RXgN^ 79 @param bytes (I) t@C©çÇÝñ¾¶ñf[^ 80 81 øÉn³ê½¶ñf[^̶Zbgðð͵A UCS4 ÌàR[h𶬷éB 82 UCS4 eLXgÉÍ get() \bhÉÄANZXÅ«éB 83 */ 55 84 UcsDecoder(char const* bytes) 56 85 { … … 68 97 } 69 98 99 /** 100 @brief àR[heLXgðæ¾·é 101 @return àR[hÉÏ·³ê½eLXg̶ñIuWFNgB 102 */ 70 103 ucs4string const& get() const { return result; } 71 104 … … 76 109 77 110 private: 111 // ¶ZbgððÍ·éB 78 112 string guessEncodeType() const 79 113 { … … 145 179 } 146 180 181 // ³f[^̶ZbgðwèµÄA UCS4 àR[heLXgÉÏ··éB 147 182 void decodeToUcs4(const string &encode_type) 148 183 { … … 213 248 }; 214 249 250 /** 251 @brief GR[_NX 252 253 àR[h̶ñðAUTF-8 `®Ì¶ñf[^ÉÏ··éB 254 */ 215 255 class UcsEncoder 216 256 { … … 218 258 vector<char> result_bytes; 219 259 260 // ftHgRXgN^ARs[RXgN^AãüZqÍgpÖ~ 220 261 UcsEncoder(); 221 262 UcsEncoder(const UcsEncoder &); … … 223 264 224 265 public: 266 /** 267 @brief RXgN^ 268 @param src (I) UCS4 àR[h¶ñ 269 270 øÉn³ê½ UCS4 àR[h¶ñðAUTF-8 `®Ì¶ñf[^ÉÏ··éB 271 */ 225 272 UcsEncoder(const ucs4string &src) : ucs_text(src), result_bytes(src.size() + 1, '\0') 226 273 { 227 274 encodeFromUcs4(); 228 275 } 276 /** 277 @brief UTF-8 `®Ì¶ñf[^ðæ¾·é 278 @return UTF-8 `®Ì¶ñf[^ÖÌ|C^ 279 */ 229 280 char const* get() const { return &result_bytes[0]; } 230 281 231 282 private: 283 // UCS4 àR[h¶ñð UTF-8 `®ÉÏ··é 232 284 void encodeFromUcs4() 233 285 {
Note: See TracChangeset
for help on using the changeset viewer.
