Character encoding and types - C/C++

Use the Win32 API funxtion
MultibyteToWideChar to convert the
stuff you read to "wide" which is UTF-16. I think
the stream classes and/or FILE streams have a
conversion mode, which would be exactly what you
need.

wchat_t is a 16-bit UTF-16 code point in
Windows. Other platforms often make wchar_t 32
bits and have different conventions.

"Character encoding is used to represent a repertoire of characters by
some kind of an encoding system." - Wikipedia.
UTF-8 is a character set. It defines which binary values represent a
character in an encoding system. E.g. in UTF-8 a = 01100001. Without a
charset, the web browser / server may choose to use a different value
for the letter a. Which can lead to all sorts of issues.
In an HTML5

Email headers should use the ASCII charset, if you want the header
fields to have a different encoding you need to use the encoded word
syntax: http://en.wikipedia.org/wiki/MIME#Encoded-Word
The email body can be directly encoded in different encoding only if
mail servers that transfer it have 8bit mime enabled (nowadays every
mail server should have it enabled, but it's not guaranteed), otherwis

From RFC 7231:
A request without an Accept-Encoding header field implies that the
user agent has no preferences regarding content-codings. Although
this allows the server to use any content-coding in a response, it
does not imply that the user agent will be able to correctly process
all encodings.
In short: if you specify no Accept-Encoding, it's legal (though
ill-advised) for the s

Use an interface:
public interface IPageData{
object LeftContent{get;} //Use the correct return type rather than
'object' here
}
Then when you declare your page types make sure you implement the
interface:
public class StandardPage:IPageData {
...
}
public class DoctorPage:IPageData{
...
}
Then you can deserialise into a common object:
IPageData pageData;
switch(smartFormId) {