The relationship between the source encoding (the encoding used to encode the text in the C source) and the target encoding (the encoding used to encode run-time strings) is not obvious. See this questionthis question for more discussion about this.
Make sure your source encoding is UTF-8, and that the compiler is preserving this.
Or, you can manually encode your strings as UTF-8, by replacing non-ASCII characters with backslash-escaped UTF-8 sequences to be more sure.