from Unicode history to UTF8/UTF16/UTF32 encodings and then standard persian keyboard layout from a view point of a programmer