[squeak-dev] Problem writing special ascii characters to a .txt file (Mac osX)

Bert Freudenberg bert at freudenbergs.de
Mon Sep 8 12:54:14 UTC 2008


Am 08.09.2008 um 14:15 schrieb Javier Reyes:

> Hello All,
> I am using text morphs which may contain extended ascii characters  
> (in my case spanish characters 'ñáéíóú').  When I save those  
> morphs and bring them back to screen everything works fine. My  
> problem comes when I write the morphs contents to a plain .txt file  
> (which in my case has to be opened with TextEdit in Mac Osx). In  
> that case the special characters are expanded into several.
>
> I am working with Squeak 3.9 in Mac OsX.  I have tried  
> UTF8TextConverter but I am obviously doing something wrong (My  
> knowledge of this issue is really scarce) . My code can be sumarized  
> with this snippet.
>
>
> tm := TextMorph new openInHand.
> (I write inside the morph some text contaning special chars, such as  
> 'bañándose')
>
> (Then I write it to a file)
> utfString := (tm contents string) convertToWithConverter:  
> (UTF8TextConverter new).
> aFile:= CrLfFileStream forceNewFileNamed: './myfile.txt'.
> aFile nextPutAll: utfString.
> aFile close.
>
> And that's it. When I open the file in TextEdit I get 'baà
> ±√ɬ°ndose'.  I have tried out some other bizarre strategies  
> but they dont work either :-(
>
> Thanks very much for your help,


TextEdit tries to guess the encoding and often gets it wrong. You can  
set the encoding it uses in its preferences.

And this code

	f := FileStream forceNewFileNamed: 'myfile.txt'.
	f nextPutAll: 'bañándose'.
	f close

works just fine for me, it produces utf8-encoded text.

(you should not use CrLfStream anymore)

- Bert -





More information about the Squeak-dev mailing list