Encoding

Specifies character format of a text file

Syntax
	KeyPgOpenOpen filename for {Input|Output|Append} Encoding "utf-8"|"utf-16"|"
	utf-32"|"ascii" as [#]filenum 

Parameters
	filename for {Input|Output|Append}
		file name to open for KeyPgInputfilemodeInput, KeyPgOutputOutput, or KeyPgAppendAppend
	Encoding "utf-8"|"utf-16"|"utf-32"|"ascii"
		indicates encoding type for the file
	filenum
		unused file number to associate with the open file

Description
	Encoding specifies the format for an Unicode text file, so KeyPgWinputWinput # and 
	KeyPgPrintPpPrint # use the correct encoding.  If omitted from an KeyPgOpenOpen statement, 
	"ascii" encoding is the default.

	Only little endian character encodings are supported at the moment. 
		*"utf8", 
		*"utf16" 
		*"utf32" 
		*"ascii" (the default)

Example
	'' This example will:
	'' 1) Write a string to a text file with utf-16 encoding
	'' 2) Display the byte contents of the file
	'' 3) Read the text back from the file
	''
	'' WSTRING's will work as well but STRING has been
	'' used in this example since not all consoles support
	'' printing WSTRING's.

	'' The name of the file to use in this example
	Dim f As String
	f = "sample.txt"

	''
	Scope
	  Dim s As String
	  s = "FreeBASIC"

	  Print "Text to write to " + f + ":"
	  Print s
	  Print

	  '' open a file for output using utf-16 encoding
	  '' and print a short message
	  Open f For Output Encoding "utf-16" As #1

	  '' The ascii string is converted to utf-16
	  Print #1, s
	  Close #1
	End Scope

	''
	Scope
	  Dim s As String, n As LongInt

	  '' open the same file for binary and read all the bytes
	  Open f For Binary As #1
	  n = LOF(1)
	  s = Space( n )
	  Get #1,,s
	  Close #1
	  
	  Print "Binary contents of " + f + ":"
	  For i As Integer = 1 To n
	   Print Hex( Asc( Mid( s, i, 1 )), 2); " ";
	  Next
	  Print
	  Print

	End Scope

	''
	Scope
	  Dim s As String
	  
	  '' open a file for input using utf-16 encoding
	  '' and read back the message
	  Open f For Input Encoding "utf-16" As #1

	  '' The ascii string is converted from utf-16
	  Line Input #1, s
	  Close #1

	  '' Display the text
	  Print "Text read from " + f + ":"
	  Print s
	  Print
	End Scope

	Output:

	Text To Write To sample.txt:
	FreeBASIC

	Binary contents of sample.txt:
	FF FE 46 00 72 00 65 00 65 00 42 00 41 00 53 00 49 00 43 00 0D 00 0A 00 

	Text Read from sample.txt:
	FreeBASIC

Platform Differences
	* Unicode (w)strings are not supported in the DOS port of FreeBASIC

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Encoding.

Differences from QB
	* QB had no support for Unicode

See also
	* KeyPgOpenOpen

