What is the default encoding that used with string variables without using the Unicode symbol?
There are two encodings to consider here. One is the encoding of the source file. This is the encoding which you have used to write the file. The compiler has to interpret the source using the same encoding that you used to write the file in order for that interpretation to be correct.
The other encoding is the execution encoding. This is the encoding that the string and character literals will have. It is often the same as the source encoding but if it isn't, then the literals will be converted to the execution encoding.
Both encodings are implementation defined.
How to specify the default encoding to read that variable in popular platforms or depend on what?
It depends on the compiler that you use.
For example, this is what the documentation of GCC says:
-fexec-charset=charset
Set the execution character set, used for string and character constants. The default is UTF-8 . charset can be any encoding
supported by the system's "iconv" library routine.
-finput-charset=charset
Set the input character set, used for translation from the character set of the input file to the source character set used by
GCC . If the locale does not specify, or GCC cannot get this
information from the locale, the default is UTF-8 . This can be
overridden by either the locale or this command line option. Currently
the command line option takes precedence if there's a conflict.
charset can be any encoding supported by the system's "iconv" library
routine.