#FEATURE by stefan
authorStefan Vogel <sv@exept.de>
Thu, 21 Nov 2019 22:23:07 +0100
changeset 24941 92ff8a7996f9
parent 24940 476e387608cf
child 24942 7ecac95aa6b6
#FEATURE by stefan class: EncodedStream added: #isUnicodeEncoded #isUnicodeEncoded:
EncodedStream.st
--- 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
 ! !