| 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 Converter<String, List<int>> { | 79 class Utf8Encoder extends Converter<String, List<int>> |
| 80 implements ChunkedConverter<String, List<int>, String, List<int>> { |
| 80 | 81 |
| 81 const Utf8Encoder(); | 82 const Utf8Encoder(); |
| 82 | 83 |
| 83 /** | 84 /** |
| 84 * Converts [string] to its UTF-8 code units (a list of | 85 * Converts [string] to its UTF-8 code units (a list of |
| 85 * unsigned 8-bit integers). | 86 * unsigned 8-bit integers). |
| 86 * | 87 * |
| 87 * If [start] and [end] are provided, only the substring | 88 * If [start] and [end] are provided, only the substring |
| 88 * `string.substring(start, end)` is converted. | 89 * `string.substring(start, end)` is converted. |
| 89 */ | 90 */ |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 } | 298 } |
| 298 | 299 |
| 299 // TODO(floitsch): implement asUtf8Sink. Sligthly complicated because it | 300 // TODO(floitsch): implement asUtf8Sink. Sligthly complicated because it |
| 300 // needs to deal with malformed input. | 301 // needs to deal with malformed input. |
| 301 } | 302 } |
| 302 | 303 |
| 303 /** | 304 /** |
| 304 * This class converts UTF-8 code units (lists of unsigned 8-bit integers) | 305 * This class converts UTF-8 code units (lists of unsigned 8-bit integers) |
| 305 * to a string. | 306 * to a string. |
| 306 */ | 307 */ |
| 307 class Utf8Decoder extends Converter<List<int>, String> { | 308 class Utf8Decoder extends Converter<List<int>, String> |
| 309 implements ChunkedConverter<List<int>, String, List<int>, String> { |
| 310 |
| 308 final bool _allowMalformed; | 311 final bool _allowMalformed; |
| 309 | 312 |
| 310 /** | 313 /** |
| 311 * Instantiates a new [Utf8Decoder]. | 314 * Instantiates a new [Utf8Decoder]. |
| 312 * | 315 * |
| 313 * The optional [allowMalformed] argument defines how [convert] deals | 316 * The optional [allowMalformed] argument defines how [convert] deals |
| 314 * with invalid or unterminated character sequences. | 317 * with invalid or unterminated character sequences. |
| 315 * | 318 * |
| 316 * If it is `true` [convert] replaces invalid (or unterminated) character | 319 * If it is `true` [convert] replaces invalid (or unterminated) character |
| 317 * sequences with the Unicode Replacement character `U+FFFD` (�). Otherwise | 320 * sequences with the Unicode Replacement character `U+FFFD` (�). Otherwise |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 } | 566 } |
| 564 break loop; | 567 break loop; |
| 565 } | 568 } |
| 566 if (expectedUnits > 0) { | 569 if (expectedUnits > 0) { |
| 567 _value = value; | 570 _value = value; |
| 568 _expectedUnits = expectedUnits; | 571 _expectedUnits = expectedUnits; |
| 569 _extraUnits = extraUnits; | 572 _extraUnits = extraUnits; |
| 570 } | 573 } |
| 571 } | 574 } |
| 572 } | 575 } |
| OLD | NEW |