OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.convert; | 5 part of dart.convert; |
6 | 6 |
7 /** The Unicode Replacement character `U+FFFD` (�). */ | 7 /** The Unicode Replacement character `U+FFFD` (�). */ |
8 const int UNICODE_REPLACEMENT_CHARACTER_RUNE = 0xFFFD; | 8 const int UNICODE_REPLACEMENT_CHARACTER_RUNE = 0xFFFD; |
9 | 9 |
10 /** The Unicode Byte Order Marker (BOM) character `U+FEFF`. */ | 10 /** The Unicode Byte Order Marker (BOM) character `U+FEFF`. */ |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 Utf8Encoder get encoder => const Utf8Encoder(); | 69 Utf8Encoder get encoder => const Utf8Encoder(); |
70 Utf8Decoder get decoder { | 70 Utf8Decoder get decoder { |
71 return new Utf8Decoder(allowMalformed: _allowMalformed); | 71 return new Utf8Decoder(allowMalformed: _allowMalformed); |
72 } | 72 } |
73 } | 73 } |
74 | 74 |
75 /** | 75 /** |
76 * This class converts strings to their UTF-8 code units (a list of | 76 * This class converts strings to their UTF-8 code units (a list of |
77 * unsigned 8-bit integers). | 77 * unsigned 8-bit integers). |
78 */ | 78 */ |
79 class Utf8Encoder extends | 79 class Utf8Encoder extends Converter<String, List<int>> { |
80 ChunkedConverter<String, List<int>, String, List<int>> { | |
81 | 80 |
82 const Utf8Encoder(); | 81 const Utf8Encoder(); |
83 | 82 |
84 /** | 83 /** |
85 * Converts [string] to its UTF-8 code units (a list of | 84 * Converts [string] to its UTF-8 code units (a list of |
86 * unsigned 8-bit integers). | 85 * unsigned 8-bit integers). |
87 * | 86 * |
88 * If [start] and [end] are provided, only the substring | 87 * If [start] and [end] are provided, only the substring |
89 * `string.substring(start, end)` is converted. | 88 * `string.substring(start, end)` is converted. |
90 */ | 89 */ |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 } | 297 } |
299 | 298 |
300 // TODO(floitsch): implement asUtf8Sink. Sligthly complicated because it | 299 // TODO(floitsch): implement asUtf8Sink. Sligthly complicated because it |
301 // needs to deal with malformed input. | 300 // needs to deal with malformed input. |
302 } | 301 } |
303 | 302 |
304 /** | 303 /** |
305 * This class converts UTF-8 code units (lists of unsigned 8-bit integers) | 304 * This class converts UTF-8 code units (lists of unsigned 8-bit integers) |
306 * to a string. | 305 * to a string. |
307 */ | 306 */ |
308 class Utf8Decoder extends | 307 class Utf8Decoder extends Converter<List<int>, String> { |
309 ChunkedConverter<List<int>, String, List<int>, String> { | |
310 final bool _allowMalformed; | 308 final bool _allowMalformed; |
311 | 309 |
312 /** | 310 /** |
313 * Instantiates a new [Utf8Decoder]. | 311 * Instantiates a new [Utf8Decoder]. |
314 * | 312 * |
315 * The optional [allowMalformed] argument defines how [convert] deals | 313 * The optional [allowMalformed] argument defines how [convert] deals |
316 * with invalid or unterminated character sequences. | 314 * with invalid or unterminated character sequences. |
317 * | 315 * |
318 * If it is `true` [convert] replaces invalid (or unterminated) character | 316 * If it is `true` [convert] replaces invalid (or unterminated) character |
319 * sequences with the Unicode Replacement character `U+FFFD` (�). Otherwise | 317 * sequences with the Unicode Replacement character `U+FFFD` (�). Otherwise |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 } | 562 } |
565 break loop; | 563 break loop; |
566 } | 564 } |
567 if (expectedUnits > 0) { | 565 if (expectedUnits > 0) { |
568 _value = value; | 566 _value = value; |
569 _expectedUnits = expectedUnits; | 567 _expectedUnits = expectedUnits; |
570 _extraUnits = extraUnits; | 568 _extraUnits = extraUnits; |
571 } | 569 } |
572 } | 570 } |
573 } | 571 } |
OLD | NEW |