Reading Unicode and displaying it

BlitzMax Forums/BlitzMax Programming/Reading Unicode and displaying it

Grey Alien(Posted 2007) [#1]
Hiya, I've saved a file as Unicode (as that's what BMax seems to support) instead of UTF-8 but I can't get it to display properly with DrawText unless I do some extra work (see code sample). Is there a better way to read in the text in the first place so it's already in Unicode format? Thanks.

You'll need these files:

http://www.greyaliengames.com/misc/arial.ttf
http://www.greyaliengames.com/misc/russian.txt

Strict

Graphics 800,600,0

Global Font:TImageFont = LoadImageFont("arial.ttf", 20)

Local File:TStream = OpenFile("Russian.txt") 'in UTF-8 format

Global TestLine$ = ""

If File Then
	While Not Eof(File)
		TestLine = ReadLine(File)
		Exit
	Wend
	CloseFile(File)
EndIf

While Not KeyHit(KEY_ESCAPE)
	Cls
	SetImageFont Font
	DrawText "abcdefghij",10,10
	DrawText "фисвуапршо",10,60
	DrawText TestLine,10,110 'doesn't work
	'Now decode the line from the file
	Local line$ = ""
	'2 bytes makes up a character.
	'Skip the first character as it just details the file type.
	For Local i = 2 To Len(TestLine)/2
		'The high order byte is stored after the low order byte.
		Local Char$ = Chr(Asc(Mid(TestLine,(i*2)-1,1))+Asc(Mid(TestLine,i*2,1))*256)
		Line:+Char
	Next
	DrawText line,10,200
	
	Flip
Wend



Grey Alien(Posted 2007) [#2]
oops answer found in this thread:

http://www.blitzbasic.com/Community/posts.php?topic=69327