#FEATURE by stefan
class: EncodedStream
added:
#isUnicodeEncoded
#isUnicodeEncoded:
--- a/EncodedStream.st Thu Nov 21 22:22:13 2019 +0100
+++ b/EncodedStream.st Thu Nov 21 22:23:07 2019 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2004 by eXept Software AG
All Rights Reserved
@@ -53,10 +55,10 @@
"
|s|
s := EncodedStream stream:Transcript encoder:(CharacterEncoder encoderToEncodeFrom:#utf8 into:#unicode).
- s nextPutAll:('öäü' utf8Encoded)
+ s nextPutAll:('öäü' utf8Encoded)
|s|
- s := EncodedStream stream:('öäü' readStream) encoder:(CharacterEncoder encoderToEncodeFrom:#utf8 into:#unicode).
+ s := EncodedStream stream:('öäü' readStream) encoder:(CharacterEncoder encoderToEncodeFrom:#utf8 into:#unicode).
s next:3
"
@@ -70,7 +72,7 @@
|baseStream s|
baseStream := '' readWriteStream.
s := EncodedStream stream:baseStream encoding:#utf8.
- s nextPutAll:'öäü'.
+ s nextPutAll:'öäü'.
baseStream reset; contents.
s contents
@@ -509,6 +511,24 @@
^ stream isReadable
!
+isUnicodeEncoded
+ "return true, if the streamed collection is any string (8-, 16- or 32-bit),
+ which definitly is not using UTF-x or JIS or any other encoding.
+ I.e. 'self next' always returns a unicode character.
+ Note: the answer of false sows not mean that it is not unicode,
+ but it does mean that we don't know for sure."
+
+ ^ encoder decodesToUnicode.
+
+ "Created: / 21-11-2019 / 18:44:32 / Stefan Vogel"
+!
+
+isUnicodeEncoded:aBoolean
+ "do not set - it is determined implicitly by the encoder"
+
+ "Created: / 21-11-2019 / 18:49:08 / Stefan Vogel"
+!
+
isWritable
^ stream isWritable
! !